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