From 4c55d01385dec553dceeb3f5481ea70be727cb39 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 09 九月 2025 11:47:38 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复切换小队未清除buff可能引起的报错; 优化切换小队重置:暂时仅保留当前血量、怒气、死亡状态,其他重置;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/Collections/DataServerPlayerData.py | 521 ---------------------------------------------------------
1 files changed, 0 insertions(+), 521 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 9b2dbc8..375b3b6 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
@@ -24588,527 +24588,6 @@
)
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:
- 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.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 getRecord(self):
- '''组织存储记录'''
- rec = {}
- rec[u'PlayerID'] = self.PlayerID
- rec[u'Index'] = self.Index
- rec[u'MineID'] = self.MineID
- rec[u'MineType'] = self.MineType
- rec[u'UpdTime'] = self.UpdTime
- rec[u'PosLen'] = self.PosLen
- rec[u'Position'] = fix_incomingText(self.Position)
- rec[u'WorkerCount'] = self.WorkerCount
- rec[u'WorkerState'] = self.WorkerState
- rec[u'RobPlayerID'] = self.RobPlayerID
- rec[u'RobWorkerCount'] = self.RobWorkerCount
- rec[u'RobWorkerState'] = self.RobWorkerState
- return rec
-
- def readRecord(self, rec):
- '''由于MongoDB读出来是unicode,所有字符串需要进行转换'''
- self.PlayerID = rec.get(u'PlayerID', 0)
- self.Index = rec.get(u'Index', 0)
- self.MineID = rec.get(u'MineID', 0)
- self.MineType = rec.get(u'MineType', 0)
- self.UpdTime = rec.get(u'UpdTime', 0)
- self.PosLen = rec.get(u'PosLen', 0)
- self.Position = fix_outgoingText(rec.get(u'Position', u''))
- self.WorkerCount = rec.get(u'WorkerCount', 0)
- self.WorkerState = rec.get(u'WorkerState', 0)
- self.RobPlayerID = rec.get(u'RobPlayerID', 0)
- self.RobWorkerCount = rec.get(u'RobWorkerCount', 0)
- self.RobWorkerState = rec.get(u'RobWorkerState', 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 = '''// 福地矿物表 #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
-
- 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'''%(
- self.PlayerID,
- self.Index,
- self.MineID,
- self.MineType,
- self.UpdTime,
- self.PosLen,
- self.Position,
- self.WorkerCount,
- self.WorkerState,
- self.RobPlayerID,
- self.RobWorkerCount,
- self.RobWorkerState,
- )
- 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:
- 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.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 getRecord(self):
- '''组织存储记录'''
- rec = {}
- rec[u'PlayerID'] = self.PlayerID
- rec[u'RecordType'] = self.RecordType
- rec[u'TagPlayerID'] = self.TagPlayerID
- rec[u'RecordTime'] = self.RecordTime
- rec[u'MineID'] = self.MineID
- rec[u'DataLen'] = self.DataLen
- rec[u'Data'] = fix_incomingText(self.Data)
- return rec
-
- def readRecord(self, rec):
- '''由于MongoDB读出来是unicode,所有字符串需要进行转换'''
- self.PlayerID = rec.get(u'PlayerID', 0)
- self.RecordType = rec.get(u'RecordType', 0)
- self.TagPlayerID = rec.get(u'TagPlayerID', 0)
- self.RecordTime = rec.get(u'RecordTime', 0)
- self.MineID = rec.get(u'MineID', 0)
- self.DataLen = rec.get(u'DataLen', 0)
- self.Data = fix_outgoingText(rec.get(u'Data', u''))
-
-#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 = '''// 福地记录表 #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
-
- def dumpString(self):
- output = '''%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s'''%(
- self.PlayerID,
- self.RecordType,
- self.TagPlayerID,
- self.RecordTime,
- self.MineID,
- self.DataLen,
- self.Data,
- )
- 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:
- 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.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 getRecord(self):
- '''组织存储记录'''
- rec = {}
- rec[u'GUIDLen'] = self.GUIDLen
- rec[u'GUID'] = fix_incomingText(self.GUID)
- rec[u'PlayerID'] = self.PlayerID
- rec[u'AwardTime'] = self.AwardTime
- rec[u'MineID'] = self.MineID
- rec[u'WorkerCount'] = self.WorkerCount
- rec[u'AreaPlayerID'] = self.AreaPlayerID
- return rec
-
- def readRecord(self, rec):
- '''由于MongoDB读出来是unicode,所有字符串需要进行转换'''
- self.GUIDLen = rec.get(u'GUIDLen', 0)
- self.GUID = fix_outgoingText(rec.get(u'GUID', u''))
- self.PlayerID = rec.get(u'PlayerID', 0)
- self.AwardTime = rec.get(u'AwardTime', 0)
- self.MineID = rec.get(u'MineID', 0)
- self.WorkerCount = rec.get(u'WorkerCount', 0)
- self.AreaPlayerID = rec.get(u'AreaPlayerID', 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 = '''// 福地结算奖励表 #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
-
- def dumpString(self):
- output = '''%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s'''%(
- self.GUIDLen,
- self.GUID,
- self.PlayerID,
- self.AwardTime,
- self.MineID,
- self.WorkerCount,
- self.AreaPlayerID,
- )
- return output
-
# 玩家记录表 #tagDBPlayerRecData
class tagDBPlayerRecData(Structure):
--
Gitblit v1.8.0