From 40f41d737bb9f7df71c6260b766756ba8a2ea1fc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 20 六月 2024 21:14:13 +0800
Subject: [PATCH] Merge branch 'hyyngame' of http://192.168.1.20:10010/r/SnxxServerCode into hyyngame

---
 ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 103 insertions(+), 7 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
index a04b1fa..2a3aa80 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
@@ -266,6 +360,8 @@
             self.Name2 = Str[:33]
             
 
+
+
 # 协助感谢表 #tagDBAssistThanks
 class tagDBAssistThanks(Structure):
     _pack_ = 1

--
Gitblit v1.8.0