From a6fe9b060edf315f6abde7443e48db5dea439f47 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 28 五月 2025 09:59:08 +0800
Subject: [PATCH] 16 卡牌服务端(功能队伍数据基础;不含功能逻辑;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/Collections/DataServerPlayerData.py |  422 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 422 insertions(+), 0 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/Collections/DataServerPlayerData.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/Collections/DataServerPlayerData.py
index 0252ce3..41fd29e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/Collections/DataServerPlayerData.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/Collections/DataServerPlayerData.py
@@ -28915,3 +28915,425 @@
         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:
+            msg = error.formatMsg('error', error.ERROR_NO_148, '(pos = %s) > (length = %s)'%(pos, length))
+            mylog.error(msg)
+            return -1
+        if len(buf) < pos + self.getLength():
+            msg = error.formatMsg('error', error.ERROR_NO_149, 'len = %s while %s expected!'%(len(buf) - pos, self.getLength()))
+            mylog.error(msg)
+        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 getRecord(self):
+        '''组织存储记录'''
+        rec = {}
+        rec[u'TeamID'] = self.TeamID
+        rec[u'TeamName'] = fix_incomingText(self.TeamName)
+        rec[u'ZoneID'] = self.ZoneID
+        rec[u'FuncMapID'] = self.FuncMapID
+        rec[u'FuncMapEx'] = self.FuncMapEx
+        rec[u'CreateTime'] = self.CreateTime
+        rec[u'CaptainID'] = self.CaptainID
+        rec[u'MinLV'] = self.MinLV
+        rec[u'MinFightPower'] = self.MinFightPower
+        rec[u'MinFightPowerEx'] = self.MinFightPowerEx
+        rec[u'ServerOnly'] = self.ServerOnly
+        rec[u'NeedCheck'] = self.NeedCheck
+        rec[u'ApplyIDLen'] = self.ApplyIDLen
+        rec[u'ApplyIDList'] = fix_incomingText(self.ApplyIDList)
+        rec[u'Value1'] = self.Value1
+        rec[u'Value2'] = self.Value2
+        rec[u'Value3'] = self.Value3
+        rec[u'Value4'] = self.Value4
+        rec[u'Value5'] = self.Value5
+        return rec
+
+    def readRecord(self, rec):
+        '''由于MongoDB读出来是unicode,所有字符串需要进行转换'''
+        self.TeamID = rec.get(u'TeamID', 0)
+        self.TeamName = fix_outgoingText(rec.get(u'TeamName', u''))
+        self.ZoneID = rec.get(u'ZoneID', 0)
+        self.FuncMapID = rec.get(u'FuncMapID', 0)
+        self.FuncMapEx = rec.get(u'FuncMapEx', 0)
+        self.CreateTime = rec.get(u'CreateTime', 0)
+        self.CaptainID = rec.get(u'CaptainID', 0)
+        self.MinLV = rec.get(u'MinLV', 0)
+        self.MinFightPower = rec.get(u'MinFightPower', 0)
+        self.MinFightPowerEx = rec.get(u'MinFightPowerEx', 0)
+        self.ServerOnly = rec.get(u'ServerOnly', 0)
+        self.NeedCheck = rec.get(u'NeedCheck', 0)
+        self.ApplyIDLen = rec.get(u'ApplyIDLen', 0)
+        self.ApplyIDList = fix_outgoingText(rec.get(u'ApplyIDList', u''))
+        self.Value1 = rec.get(u'Value1', 0)
+        self.Value2 = rec.get(u'Value2', 0)
+        self.Value3 = rec.get(u'Value3', 0)
+        self.Value4 = rec.get(u'Value4', 0)
+        self.Value5 = rec.get(u'Value5', 0)
+
+#Can not implement adoLoadStr method:No key defined!
+#Can not implement adoInsertStr method:No key defined!
+#Can not implement adoUpdateStr method:No key defined!
+#Can not implement adoUpdateStr method:No key defined!
+#Can not implement adoCheckUpdateStr method:No key defined!
+#Can not implement adoCheckUpdateExStr method:No key defined!
+
+    def getAdoRecords(self, resultCollection):
+        '''查询结果打包成二进制流'''
+        result = ''
+        result = CommFunc.WriteDWORD(result, resultCollection.count())
+        for rec in resultCollection:
+            self.readRecord(rec)
+            result += self.getBuffer()
+        return result
+
+#Can not implement adoQueryIndexStr method:No key defined!
+
+    def adoQueryCustom(self, collection, queryDict):
+        '''自定义查询'''
+        resultCollection = collection.find(queryDict)
+
+        return self.getAdoRecords(resultCollection)
+
+
+    def adoQueryAll(self, collection):
+        '''查询所有''' 
+        resultCollection = collection.find()
+         
+        return self.getAdoRecords(resultCollection)
+
+#Can not implement adoDeleteByIndexStr method:No key defined!
+    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
+
+    def dumpString(self):
+        output = '''%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s'''%(
+                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,
+            )
+        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:
+            msg = error.formatMsg('error', error.ERROR_NO_148, '(pos = %s) > (length = %s)'%(pos, length))
+            mylog.error(msg)
+            return -1
+        if len(buf) < pos + self.getLength():
+            msg = error.formatMsg('error', error.ERROR_NO_149, 'len = %s while %s expected!'%(len(buf) - pos, self.getLength()))
+            mylog.error(msg)
+        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 getRecord(self):
+        '''组织存储记录'''
+        rec = {}
+        rec[u'TeamID'] = self.TeamID
+        rec[u'PlayerID'] = self.PlayerID
+        rec[u'Value1'] = self.Value1
+        rec[u'Value2'] = self.Value2
+        rec[u'Value3'] = self.Value3
+        rec[u'Value4'] = self.Value4
+        rec[u'Value5'] = self.Value5
+        return rec
+
+    def readRecord(self, rec):
+        '''由于MongoDB读出来是unicode,所有字符串需要进行转换'''
+        self.TeamID = rec.get(u'TeamID', 0)
+        self.PlayerID = rec.get(u'PlayerID', 0)
+        self.Value1 = rec.get(u'Value1', 0)
+        self.Value2 = rec.get(u'Value2', 0)
+        self.Value3 = rec.get(u'Value3', 0)
+        self.Value4 = rec.get(u'Value4', 0)
+        self.Value5 = rec.get(u'Value5', 0)
+
+#Can not implement adoLoadStr method:No key defined!
+#Can not implement adoInsertStr method:No key defined!
+#Can not implement adoUpdateStr method:No key defined!
+#Can not implement adoUpdateStr method:No key defined!
+#Can not implement adoCheckUpdateStr method:No key defined!
+#Can not implement adoCheckUpdateExStr method:No key defined!
+
+    def getAdoRecords(self, resultCollection):
+        '''查询结果打包成二进制流'''
+        result = ''
+        result = CommFunc.WriteDWORD(result, resultCollection.count())
+        for rec in resultCollection:
+            self.readRecord(rec)
+            result += self.getBuffer()
+        return result
+
+#Can not implement adoQueryIndexStr method:No key defined!
+
+    def adoQueryCustom(self, collection, queryDict):
+        '''自定义查询'''
+        resultCollection = collection.find(queryDict)
+
+        return self.getAdoRecords(resultCollection)
+
+
+    def adoQueryAll(self, collection):
+        '''查询所有''' 
+        resultCollection = collection.find()
+         
+        return self.getAdoRecords(resultCollection)
+
+#Can not implement adoDeleteByIndexStr method:No key defined!
+    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
+
+    def dumpString(self):
+        output = '''%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s'''%(
+                self.TeamID,
+                self.PlayerID,
+                self.Value1,
+                self.Value2,
+                self.Value3,
+                self.Value4,
+                self.Value5,
+            )
+        return output
+
+

--
Gitblit v1.8.0