From 26958aff1b844a743a805b4f9075bee800b72a46 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 14:35:37 +0800
Subject: [PATCH] 332 【主界面】座骑系统-服务端

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/DBStruct.py |  317 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 312 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/DBStruct.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/DBStruct.py
index b6b8e0c..9ec0831 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/DBStruct.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/DBStruct.py
@@ -746,6 +746,7 @@
         ('FightPower', ctypes.c_ulong),
         ('FightPowerEx', ctypes.c_ulong),
         ('EmblemID', ctypes.c_ushort),
+        ('EmblemWord', ctypes.c_char * 3),
         ('ADOResult', ctypes.c_ulong),
     ]
 
@@ -768,6 +769,7 @@
         self.FightPower = 0
         self.FightPowerEx = 0
         self.EmblemID = 0
+        self.EmblemWord = ''
 
     def readData(self, buf, pos = 0, length = 0):
         if not pos <= length:
@@ -790,6 +792,7 @@
         self.FightPower, pos = CommFunc.ReadDWORD(buf, pos)
         self.FightPowerEx, pos = CommFunc.ReadDWORD(buf, pos)
         self.EmblemID, pos = CommFunc.ReadWORD(buf, pos)
+        self.EmblemWord, pos = CommFunc.ReadString(buf, pos, 3)
         return self.getLength()
 
     def getBuffer(self):
@@ -808,6 +811,7 @@
         buf = CommFunc.WriteDWORD(buf, self.FightPower)
         buf = CommFunc.WriteDWORD(buf, self.FightPowerEx)
         buf = CommFunc.WriteWORD(buf, self.EmblemID)
+        buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 3, self.EmblemWord)
         return buf
 
     def getLength(self):
@@ -826,6 +830,7 @@
         length += sizeof(ctypes.c_ulong)
         length += sizeof(ctypes.c_ulong)
         length += sizeof(ctypes.c_ushort)
+        length += sizeof(ctypes.c_char) * 3
         return length
 
     def outputString(self):
@@ -844,6 +849,7 @@
             FightPower = %s,
             FightPowerEx = %s,
             EmblemID = %s,
+            EmblemWord = %s,
             ADOResult = %s,
             '''%(
                 self.ID,
@@ -860,6 +866,7 @@
                 self.FightPower,
                 self.FightPowerEx,
                 self.EmblemID,
+                self.EmblemWord,
                 self.ADOResult,
             )
         return output
@@ -870,6 +877,12 @@
             self.Name = Str
         else:
             self.Name = Str[:33]
+            
+    def SetEmblemWord(self,Str):
+        if len(Str)<=3:
+            self.EmblemWord = Str
+        else:
+            self.EmblemWord = Str[:3]
             
 
 # 家族成员表 #tagDBFamilyMem
@@ -891,7 +904,10 @@
         ('OffTime', ctypes.c_ulong),
         ('FmLV', ctypes.c_ubyte),
         ('ContribTotal', ctypes.c_ulong),
-        ('ContribWeek', ctypes.c_ulong),
+        ('ContribDay', ctypes.c_ulong),
+        ('DonateCntTotal', ctypes.c_ulong),
+        ('DonateCntDay', ctypes.c_ubyte),
+        ('TitleID', ctypes.c_ulong),
         ('ADOResult', ctypes.c_ulong),
     ]
 
@@ -924,7 +940,10 @@
         self.OffTime, pos = CommFunc.ReadDWORD(buf, pos)
         self.FmLV, pos = CommFunc.ReadBYTE(buf, pos)
         self.ContribTotal, pos = CommFunc.ReadDWORD(buf, pos)
-        self.ContribWeek, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ContribDay, pos = CommFunc.ReadDWORD(buf, pos)
+        self.DonateCntTotal, pos = CommFunc.ReadDWORD(buf, pos)
+        self.DonateCntDay, pos = CommFunc.ReadBYTE(buf, pos)
+        self.TitleID, pos = CommFunc.ReadDWORD(buf, pos)
         return self.getLength()
 
 
@@ -953,7 +972,10 @@
             OffTime = %s,
             FmLV = %s,
             ContribTotal = %s,
-            ContribWeek = %s,
+            ContribDay = %s,
+            DonateCntTotal = %s,
+            DonateCntDay = %s,
+            TitleID = %s,
             ADOResult = %s,
             '''%(
                 self.PlayerID,
@@ -971,7 +993,10 @@
                 self.OffTime,
                 self.FmLV,
                 self.ContribTotal,
-                self.ContribWeek,
+                self.ContribDay,
+                self.DonateCntTotal,
+                self.DonateCntDay,
+                self.TitleID,
                 self.ADOResult,
             )
         return output
@@ -1126,9 +1151,12 @@
         ('RealmLV', ctypes.c_ubyte),
         ('Face', ctypes.c_int),
         ('FacePic', ctypes.c_int),
+        ('ModelMark', ctypes.c_ulong),
+        ('EquipShowSwitch', ctypes.c_ulong),
         ('FamilyID', ctypes.c_ulong),
         ('FamilyName', ctypes.c_char * 33),
         ('FamilyEmblemID', ctypes.c_ushort),
+        ('FamilyEmblemWord', ctypes.c_char * 3),
         ('TitleID', ctypes.c_ulong),
         ('FightPower', ctypes.c_ulong),
         ('FightPowerEx', ctypes.c_ulong),
@@ -1152,9 +1180,12 @@
         self.RealmLV = 0
         self.Face = 0
         self.FacePic = 0
+        self.ModelMark = 0
+        self.EquipShowSwitch = 0
         self.FamilyID = 0
         self.FamilyName = ''
         self.FamilyEmblemID = 0
+        self.FamilyEmblemWord = ''
         self.TitleID = 0
         self.FightPower = 0
         self.FightPowerEx = 0
@@ -1177,9 +1208,12 @@
         self.RealmLV, pos = CommFunc.ReadBYTE(buf, pos)
         self.Face, pos = CommFunc.ReadDWORD(buf, pos)
         self.FacePic, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ModelMark, pos = CommFunc.ReadDWORD(buf, pos)
+        self.EquipShowSwitch, pos = CommFunc.ReadDWORD(buf, pos)
         self.FamilyID, pos = CommFunc.ReadDWORD(buf, pos)
         self.FamilyName, pos = CommFunc.ReadString(buf, pos, 33)
         self.FamilyEmblemID, pos = CommFunc.ReadWORD(buf, pos)
+        self.FamilyEmblemWord, pos = CommFunc.ReadString(buf, pos, 3)
         self.TitleID, pos = CommFunc.ReadDWORD(buf, pos)
         self.FightPower, pos = CommFunc.ReadDWORD(buf, pos)
         self.FightPowerEx, pos = CommFunc.ReadDWORD(buf, pos)
@@ -1200,9 +1234,12 @@
         buf = CommFunc.WriteBYTE(buf, self.RealmLV)
         buf = CommFunc.WriteDWORD(buf, self.Face)
         buf = CommFunc.WriteDWORD(buf, self.FacePic)
+        buf = CommFunc.WriteDWORD(buf, self.ModelMark)
+        buf = CommFunc.WriteDWORD(buf, self.EquipShowSwitch)
         buf = CommFunc.WriteDWORD(buf, self.FamilyID)
         buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.FamilyName)
         buf = CommFunc.WriteWORD(buf, self.FamilyEmblemID)
+        buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 3, self.FamilyEmblemWord)
         buf = CommFunc.WriteDWORD(buf, self.TitleID)
         buf = CommFunc.WriteDWORD(buf, self.FightPower)
         buf = CommFunc.WriteDWORD(buf, self.FightPowerEx)
@@ -1223,8 +1260,11 @@
         length += sizeof(ctypes.c_int)
         length += sizeof(ctypes.c_int)
         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_ushort)
+        length += sizeof(ctypes.c_char) * 3
         length += sizeof(ctypes.c_ulong)
         length += sizeof(ctypes.c_ulong)
         length += sizeof(ctypes.c_ulong)
@@ -1244,9 +1284,12 @@
             RealmLV = %s,
             Face = %s,
             FacePic = %s,
+            ModelMark = %s,
+            EquipShowSwitch = %s,
             FamilyID = %s,
             FamilyName = %s,
             FamilyEmblemID = %s,
+            FamilyEmblemWord = %s,
             TitleID = %s,
             FightPower = %s,
             FightPowerEx = %s,
@@ -1264,9 +1307,12 @@
                 self.RealmLV,
                 self.Face,
                 self.FacePic,
+                self.ModelMark,
+                self.EquipShowSwitch,
                 self.FamilyID,
                 self.FamilyName,
                 self.FamilyEmblemID,
+                self.FamilyEmblemWord,
                 self.TitleID,
                 self.FightPower,
                 self.FightPowerEx,
@@ -1296,6 +1342,12 @@
             self.FamilyName = Str
         else:
             self.FamilyName = Str[:33]
+            
+    def SetFamilyEmblemWord(self,Str):
+        if len(Str)<=3:
+            self.FamilyEmblemWord = Str
+        else:
+            self.FamilyEmblemWord = Str[:3]
             
 
 # 邮件个人邮件表 #tagDBMailPersonal
@@ -1723,6 +1775,7 @@
         ('CmpValue', ctypes.c_ulong),
         ('CmpValue2', ctypes.c_ulong),
         ('CmpValue3', ctypes.c_ulong),
+        ('Time', ctypes.c_ulong),
         ('DataLen', ctypes.c_ushort),
         ('UserData', ctypes.c_char_p),
         ('ADOResult', ctypes.c_ulong),
@@ -1752,6 +1805,7 @@
         self.CmpValue = 0
         self.CmpValue2 = 0
         self.CmpValue3 = 0
+        self.Time = 0
         self.DataLen = 0
         self.UserData = ''
 
@@ -1780,6 +1834,7 @@
         self.CmpValue, pos = CommFunc.ReadDWORD(buf, pos)
         self.CmpValue2, pos = CommFunc.ReadDWORD(buf, pos)
         self.CmpValue3, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Time, 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)
@@ -1806,6 +1861,7 @@
         buf = CommFunc.WriteDWORD(buf, self.CmpValue)
         buf = CommFunc.WriteDWORD(buf, self.CmpValue2)
         buf = CommFunc.WriteDWORD(buf, self.CmpValue3)
+        buf = CommFunc.WriteDWORD(buf, self.Time)
         buf = CommFunc.WriteWORD(buf, self.DataLen)
         buf = CommFunc.WriteString(buf, self.DataLen, self.UserData)
         return buf
@@ -1820,6 +1876,7 @@
         length += sizeof(ctypes.c_char) * 33
         length += sizeof(ctypes.c_char) * 65
         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)
@@ -1856,6 +1913,7 @@
             CmpValue = %s,
             CmpValue2 = %s,
             CmpValue3 = %s,
+            Time = %s,
             DataLen = %s,
             UserData = %s,
             ADOResult = %s,
@@ -1879,6 +1937,7 @@
                 self.CmpValue,
                 self.CmpValue2,
                 self.CmpValue3,
+                self.Time,
                 self.DataLen,
                 self.UserData,
                 self.ADOResult,
@@ -2029,11 +2088,259 @@
         return output
 
 
+# 功能队伍表 #tagDBFuncTeam
+class tagDBFuncTeam(Structure):
+    _pack_ = 1
+    _fields_ = [
+        ('TeamID', ctypes.c_ulong),
+        ('TeamName', ctypes.c_char * 33),
+        ('ZoneID', ctypes.c_ubyte),
+        ('FuncMapID', ctypes.c_ulong),
+        ('FuncMapEx', ctypes.c_ulong),
+        ('CreateTime', ctypes.c_ulong),
+        ('CaptainID', ctypes.c_ulong),
+        ('MinLV', ctypes.c_ushort),
+        ('MinFightPower', ctypes.c_ulong),
+        ('MinFightPowerEx', ctypes.c_ulong),
+        ('ServerOnly', ctypes.c_ubyte),
+        ('NeedCheck', ctypes.c_ubyte),
+        ('ApplyIDLen', ctypes.c_ushort),
+        ('ApplyIDList', ctypes.c_char_p),
+        ('Value1', ctypes.c_ulong),
+        ('Value2', ctypes.c_ulong),
+        ('Value3', ctypes.c_ulong),
+        ('Value4', ctypes.c_ulong),
+        ('Value5', ctypes.c_ulong),
+        ('ADOResult', ctypes.c_ulong),
+    ]
+
+    def __init__(self):
+        Structure.__init__(self)
+        self.clear()
+
+    def clear(self):
+        self.TeamID = 0
+        self.TeamName = ''
+        self.ZoneID = 0
+        self.FuncMapID = 0
+        self.FuncMapEx = 0
+        self.CreateTime = 0
+        self.CaptainID = 0
+        self.MinLV = 0
+        self.MinFightPower = 0
+        self.MinFightPowerEx = 0
+        self.ServerOnly = 0
+        self.NeedCheck = 0
+        self.ApplyIDLen = 0
+        self.ApplyIDList = ''
+        self.Value1 = 0
+        self.Value2 = 0
+        self.Value3 = 0
+        self.Value4 = 0
+        self.Value5 = 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.TeamID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TeamName, pos = CommFunc.ReadString(buf, pos, 33)
+        self.ZoneID, pos = CommFunc.ReadBYTE(buf, pos)
+        self.FuncMapID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FuncMapEx, pos = CommFunc.ReadDWORD(buf, pos)
+        self.CreateTime, pos = CommFunc.ReadDWORD(buf, pos)
+        self.CaptainID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.MinLV, pos = CommFunc.ReadWORD(buf, pos)
+        self.MinFightPower, pos = CommFunc.ReadDWORD(buf, pos)
+        self.MinFightPowerEx, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ServerOnly, pos = CommFunc.ReadBYTE(buf, pos)
+        self.NeedCheck, pos = CommFunc.ReadBYTE(buf, pos)
+        self.ApplyIDLen, pos = CommFunc.ReadWORD(buf, pos)
+        tmp, pos = CommFunc.ReadString(buf, pos, self.ApplyIDLen)
+        self.ApplyIDList = ctypes.c_char_p(tmp)
+        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)
+        return self.getLength()
+
+    def getBuffer(self):
+        buf = ''
+        buf = CommFunc.WriteDWORD(buf, self.TeamID)
+        buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.TeamName)
+        buf = CommFunc.WriteBYTE(buf, self.ZoneID)
+        buf = CommFunc.WriteDWORD(buf, self.FuncMapID)
+        buf = CommFunc.WriteDWORD(buf, self.FuncMapEx)
+        buf = CommFunc.WriteDWORD(buf, self.CreateTime)
+        buf = CommFunc.WriteDWORD(buf, self.CaptainID)
+        buf = CommFunc.WriteWORD(buf, self.MinLV)
+        buf = CommFunc.WriteDWORD(buf, self.MinFightPower)
+        buf = CommFunc.WriteDWORD(buf, self.MinFightPowerEx)
+        buf = CommFunc.WriteBYTE(buf, self.ServerOnly)
+        buf = CommFunc.WriteBYTE(buf, self.NeedCheck)
+        buf = CommFunc.WriteWORD(buf, self.ApplyIDLen)
+        buf = CommFunc.WriteString(buf, self.ApplyIDLen, self.ApplyIDList)
+        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)
+        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_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_ulong)
+        length += sizeof(ctypes.c_ulong)
+        length += sizeof(ctypes.c_ubyte)
+        length += sizeof(ctypes.c_ubyte)
+        length += sizeof(ctypes.c_ushort)
+        length += self.ApplyIDLen
+        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)
+        return length
+
+    def outputString(self):
+        output = '''// 功能队伍表 #tagDBFuncTeam:
+            TeamID = %s,
+            TeamName = %s,
+            ZoneID = %s,
+            FuncMapID = %s,
+            FuncMapEx = %s,
+            CreateTime = %s,
+            CaptainID = %s,
+            MinLV = %s,
+            MinFightPower = %s,
+            MinFightPowerEx = %s,
+            ServerOnly = %s,
+            NeedCheck = %s,
+            ApplyIDLen = %s,
+            ApplyIDList = %s,
+            Value1 = %s,
+            Value2 = %s,
+            Value3 = %s,
+            Value4 = %s,
+            Value5 = %s,
+            ADOResult = %s,
+            '''%(
+                self.TeamID,
+                self.TeamName,
+                self.ZoneID,
+                self.FuncMapID,
+                self.FuncMapEx,
+                self.CreateTime,
+                self.CaptainID,
+                self.MinLV,
+                self.MinFightPower,
+                self.MinFightPowerEx,
+                self.ServerOnly,
+                self.NeedCheck,
+                self.ApplyIDLen,
+                self.ApplyIDList,
+                self.Value1,
+                self.Value2,
+                self.Value3,
+                self.Value4,
+                self.Value5,
+                self.ADOResult,
+            )
+        return output
+
+    #Char数组类型Set接口,使用该接口对此类型数据赋值,防止赋值的数据过长报错
+    def SetTeamName(self,Str):
+        if len(Str)<=33:
+            self.TeamName = Str
+        else:
+            self.TeamName = Str[:33]
+            
+
+# 功能队伍成员表 #tagDBFuncTeamMem
+class tagDBFuncTeamMem(Structure):
+    _pack_ = 1
+    _fields_ = [
+        ('TeamID', ctypes.c_ulong),
+        ('PlayerID', ctypes.c_ulong),
+        ('Value1', ctypes.c_ulong),
+        ('Value2', ctypes.c_ulong),
+        ('Value3', ctypes.c_ulong),
+        ('Value4', ctypes.c_ulong),
+        ('Value5', 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.TeamID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.PlayerID, pos = CommFunc.ReadDWORD(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)
+        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(tagDBFuncTeamMem)
+
+    def outputString(self):
+        output = '''// 功能队伍成员表 #tagDBFuncTeamMem:
+            TeamID = %s,
+            PlayerID = %s,
+            Value1 = %s,
+            Value2 = %s,
+            Value3 = %s,
+            Value4 = %s,
+            Value5 = %s,
+            ADOResult = %s,
+            '''%(
+                self.TeamID,
+                self.PlayerID,
+                self.Value1,
+                self.Value2,
+                self.Value3,
+                self.Value4,
+                self.Value5,
+                self.ADOResult,
+            )
+        return output
+
+
 
 #服务器世界数据表版本号
 GAMEWORLD_DATA_VERSION_NO = ctypes.c_ulong (\
     sizeof(tagDBEventTrig) + sizeof(tagDBFamily) + sizeof(tagDBFamilyMem) + sizeof(tagDBFamilyAction) + 
     sizeof(tagDBPlayerViewCache) + sizeof(tagDBMailPersonal) + sizeof(tagDBMailServer) + sizeof(tagDBMailItem) + 
-    sizeof(tagDBMailPlayerRec) + sizeof(tagDBBillboard) + sizeof(tagDBGameRec)
+    sizeof(tagDBMailPlayerRec) + sizeof(tagDBBillboard) + sizeof(tagDBGameRec) + sizeof(tagDBFuncTeam) + sizeof(tagDBFuncTeamMem)
     ).value
     
\ No newline at end of file

--
Gitblit v1.8.0