From 9d9430082ec01ad0c0dcad5b4c062525c4053548 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 07 一月 2025 19:00:09 +0800
Subject: [PATCH] 10289 【越南】【英语】【砍树】【BT】运势-服务端(寻宝设定表增加配置不同的寻宝广播key)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerRecData.py | 48 ++++++++++++++++++++++++++++++++----------------
1 files changed, 32 insertions(+), 16 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerRecData.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerRecData.py
index a471d0b..fbe659c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerRecData.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerRecData.py
@@ -32,11 +32,13 @@
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
@@ -60,24 +62,39 @@
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):
@@ -258,8 +275,7 @@
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)))
--
Gitblit v1.8.0