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