From 00f4a55d20b44485efb11172bf61263e8cfb57fa Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 12 三月 2025 15:09:14 +0800
Subject: [PATCH] 10416 【英文】【bt】【GM】【砍树】登录基金和幻境基金 完成后可以重置购买(重置关联的充值ID)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorship.py | 49 ++++---------------------------------------------
1 files changed, 4 insertions(+), 45 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorship.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorship.py
index ba12981..8ab7b09 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorship.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorship.py
@@ -43,6 +43,8 @@
# 今日已膜拜记录 {tagPlayerID:[[膜拜类型, 膜拜值], ...], ...}
# 今日是否已膜拜过该玩家某个膜拜
def HasWorshipRecordToday(recData, tagPlayerID, worshipType, worshipValue):
+ if not recData:
+ return False
worshipRecordList = recData.GetUserDataByKey(tagPlayerID, [])
if not worshipRecordList:
return False
@@ -57,49 +59,6 @@
return
##--------------------------------------------------------------------------------------------------
def OnServerStart():
- ## 修改了膜拜UserData的存储内容及格式,需要对老数据进行处理
- # 因为活动类的活动结束后无法根据分区ID识别是否可膜拜,故改为同仙宫一样指定可膜拜的服务器ID列表
-
- isCrossServer = GameWorld.IsCrossServer()
- crossZoneName = GameWorld.GetCrossZoneName()
- playerRecMgr = PyDataManager.GetDBPlayerRecDataManager()
- recDict = playerRecMgr.GetPlayerRecDataDict(ShareDefine.Def_PlayerRecType_WorshipPlayer)
- for recDataList in recDict.values():
- for recData in recDataList:
- playerID = recData.GetPlayerID()
- worshipType = GetWorshipType(recData)
- worshipValue = GetWorshipValue(recData)
- if isCrossServer:
- if worshipType != ShareDefine.Def_WorshipType_CrossChampionship:
- # 跨服服务器只修正跨服排位膜拜
- continue
- else:
- if worshipType != ShareDefine.Def_WorshipType_ServerNaming:
- # 子服服务器只修正服务器冠名膜拜
- continue
-
- userData = recData.GetUserData()
- try:
- userDataOld = eval(userData)
- except:
- userDataOld = {}
-
- if ChConfig.Def_RecDataKey_PlayerInfo in userDataOld:
- GameWorld.Log("该膜拜数据已经被修正过了! worshipType=%s,worshipValue=%s" % (worshipType, worshipValue), playerID)
- continue
-
- recData.SetUserData({})
- recData.SetUserDataByKey(ChConfig.Def_RecDataKey_PlayerInfo, userDataOld)
-
- if worshipType == ShareDefine.Def_WorshipType_CrossChampionship:
- zoneID = recData.GetValue4()
- zoneIpyData = IpyGameDataPY.GetIpyGameData("CrossZonePK", crossZoneName, zoneID)
- serverIDRangeList = zoneIpyData.GetServerGroupIDList() if zoneIpyData else []
- recData.SetUserDataByKey(ChConfig.Def_RecDataKey_ServerIDList, serverIDRangeList)
-
- userDataNew = recData.GetUserData()
- GameWorld.Log("修正膜拜数据! worshipType=%s,worshipValue=%s,userData=%s,userDataNew=%s"
- % (worshipType, worshipValue, userData, userDataNew), playerID)
return
def GetPlayerViewInfo(playerID):
@@ -312,7 +271,7 @@
GameWorld.DebugLog("膜拜: tagPlayerID=%s,worshipType=%s,worshipValue=%s,moneyType=%s,moneyValue=%s"
% (tagPlayerID, worshipType, worshipValue, moneyType, moneyValue), playerID)
playerRecMgr = PyDataManager.GetDBPlayerRecDataManager()
- worshipRecData = playerRecMgr.GetPlayerRecDataFirst(ShareDefine.Def_PlayerRecType_WorshipDaily, playerID)
+ worshipRecData = playerRecMgr.GetPlayerRecDataFirst(ShareDefine.Def_PlayerRecType_WorshipDaily, playerID, True)
SetWorshipRecordToday(worshipRecData, tagPlayerID, worshipType, worshipValue)
__SyncWorshipResult(curPlayer, tagPlayerID, worshipType, worshipValue, 0, moneyType, moneyValue)
@@ -349,7 +308,7 @@
return
playerRecMgr = PyDataManager.GetDBPlayerRecDataManager()
- worshipRecData = playerRecMgr.GetPlayerRecDataFirst(ShareDefine.Def_PlayerRecType_WorshipDaily, playerID)
+ worshipRecData = playerRecMgr.GetPlayerRecDataFirst(ShareDefine.Def_PlayerRecType_WorshipDaily, playerID, False)
if HasWorshipRecordToday(worshipRecData, recPlayerID, worshipType, worshipValue):
GameWorld.DebugLog("今日已膜拜过! recPlayerID=%s,worshipType=%s, worshipValue=%s" % (recPlayerID, worshipType, worshipValue), playerID)
return
--
Gitblit v1.8.0