| | |
| | | if not dbRecData:
|
| | | dbRecData = PyGameDataStruct.tagDBPlayerRecData()
|
| | | self.dbRecData = dbRecData
|
| | | self.evalUserData = None
|
| | | self.__userDataDict = None
|
| | | self.__userDataChange = False
|
| | | return
|
| | | def clear(self):
|
| | | self.dbRecData.clear()
|
| | | self.evalUserData = None
|
| | | self.__userDataDict = None
|
| | | self.__userDataChange = False
|
| | | return
|
| | | def GetPlayerID(self): return self.dbRecData.PlayerID
|
| | | def SetPlayerID(self, playerID): self.dbRecData.PlayerID = playerID
|
| | |
| | | def SetValue7(self, value7): self.dbRecData.Value7 = value7
|
| | | def GetValue8(self): return self.dbRecData.Value8
|
| | | def SetValue8(self, value8): self.dbRecData.Value8 = value8
|
| | | def GetUserData(self): return self.dbRecData.UserData
|
| | | def __GetUserDataDict(self):
|
| | | if self.__userDataDict == None:
|
| | | try:
|
| | | self.__userDataDict = eval(self.dbRecData.UserData)
|
| | | except:
|
| | | self.__userDataDict = {}
|
| | | return self.__userDataDict
|
| | | def GetUserDataByKey(self, key, defaultValue=None):
|
| | | userDataDict = self.__GetUserDataDict()
|
| | | if key in userDataDict:
|
| | | return userDataDict[key]
|
| | | return defaultValue
|
| | | def SetUserDataByKey(self, key, value):
|
| | | userDataDict = self.__GetUserDataDict()
|
| | | userDataDict[key] = value
|
| | | self.__userDataChange = True
|
| | | return
|
| | | def GetUserData(self):
|
| | | if self.__userDataChange:
|
| | | self.SaveUserData()
|
| | | return self.dbRecData.UserData
|
| | | def SetUserData(self, userData):
|
| | | ## 支持直接保存任意格式数据,或者按字典方式读取kv值
|
| | | if type(userData) != str:
|
| | | userData = str(userData)
|
| | | self.dbRecData.UserData = userData.replace(" ", "")
|
| | | self.dbRecData.UserDataLen = len(self.dbRecData.UserData)
|
| | | if self.evalUserData != None:
|
| | | self.evalUserData = None
|
| | | self.__userDataDict = None
|
| | | self.__userDataChange = False
|
| | | return
|
| | | def GetEvalUserData(self, defValue={}):
|
| | | if self.evalUserData == None:
|
| | | try:
|
| | | self.evalUserData = eval(self.dbRecData.UserData)
|
| | | except:
|
| | | self.evalUserData = defValue
|
| | | return self.evalUserData
|
| | | def SetEvalUserData(self, eValue):
|
| | | self.evalUserData = eValue
|
| | | def SaveUserData(self):
|
| | | if self.__userDataChange:
|
| | | self.SetUserData(self.__userDataDict)
|
| | | return
|
| | |
|
| | | def IsMatchValue(self, valueList):
|
| | |
| | | for recDataList in playerRecDataDict.values():
|
| | | for recData in recDataList:
|
| | | cnt += 1
|
| | | if recData.evalUserData != None:
|
| | | recData.SetUserData(recData.evalUserData)
|
| | | recData.SaveUserData()
|
| | | savaData += recData.dbRecData.getBuffer()
|
| | |
|
| | | GameWorld.Log("Save DBPlayerRecData count :%s len=%s" % (cnt, len(savaData)))
|