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: