From b3c6d36f5ae851f09a3c2e73494ff19956b06fb0 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 11 四月 2025 16:56:14 +0800
Subject: [PATCH] 10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(跨服仙盟支持;后台查询区服仙盟支持;活动时间流程支持;攻城战主活动功能完整流程:公示、分组、战备、战斗、榜单、竞猜、领奖等;)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameRecData.py |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameRecData.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameRecData.py
index 8690970..f1bb836 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameRecData.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameRecData.py
@@ -58,7 +58,7 @@
     def SetValue7(self, value7): self.dbRecData.Value7 = value7
     def GetValue8(self): return self.dbRecData.Value8
     def SetValue8(self, value8): self.dbRecData.Value8 = value8
-    def __GetUserDataDict(self):
+    def GetUserDataDict(self):
         if self.__userDataDict == None:
             try:
                 self.__userDataDict = eval(self.dbRecData.UserData)
@@ -66,12 +66,12 @@
                 self.__userDataDict = {}
         return self.__userDataDict
     def GetUserDataByKey(self, key, defaultValue=None):
-        userDataDict = self.__GetUserDataDict()
+        userDataDict = self.GetUserDataDict()
         if key in userDataDict:
             return userDataDict[key]
         return defaultValue
     def SetUserDataByKey(self, key, value):
-        userDataDict = self.__GetUserDataDict()
+        userDataDict = self.GetUserDataDict()
         userDataDict[key] = value
         self.__userDataChange = True
         return
@@ -112,7 +112,7 @@
         return {"RecID":self.GetRecID(), "RecType":self.GetRecType(), "Time":self.GetTime(), 
                 "Value1":self.GetValue1(), "Value2":self.GetValue2(), "Value3":self.GetValue3(), "Value4":self.GetValue4(),
                 "Value5":self.GetValue5(), "Value6":self.GetValue6(), "Value7":self.GetValue7(), "Value8":self.GetValue8(), 
-                "UserDataDict":self.__GetUserDataDict()
+                "UserDataDict":self.GetUserDataDict()
                 }
     def SetAttr(self, attrDict, isClear=False):
         if isClear:
@@ -324,6 +324,33 @@
             matchRecDataList.append(recData)
         return matchRecDataList
     
+    def GetGameRecDataMatchEx(self, recType, valueList, findone=False):
+        '''获取记录类型对应的匹配value值记录
+        @param recType: 记录类型
+        @param valueList: [value1, value2, ...] value为None时不判断该值
+        @param findone: 是否只匹配一条满足的记录
+        @return: recData or [recData, ...] or None
+        '''
+        if recType not in self.recTypeDict:
+            return
+        recDataDict = self.recTypeDict[recType]
+        for recID in recDataDict.keys():
+            matchRet = self.GetGameRecDataMatch(recType, recID, valueList, findone)
+            if matchRet:
+                return matchRet
+        return
+    
+    def GetGameRecDataFirst(self, recType, recID, isAddNew):
+        ## 获取记录类型对应的第一条记录,适用于仅需一条的记录类型
+        # @param isAddNew: 没有记录时是否添加一条新记录,一般获取后需要更新数据的可以设置为True,仅判断用的建议设置为False,减少产生多余空数据
+        recData = None
+        recDataList = self.GetGameRecDataList(recType, recID)
+        if recDataList:
+            recData = recDataList[0]
+        elif isAddNew:
+            recData = self.AddGameRecData(recType, recID)
+        return recData
+    
     def GetGameRecDataList(self, recType, recID):
         ## 获取记录类型对应记录列表 [recData, ...]
         if recType not in self.recTypeDict:

--
Gitblit v1.8.0