From 29ea88641286b5ef92f6010f020fd13bea1361cc Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 26 八月 2022 15:17:50 +0800 Subject: [PATCH] 9265 【后端】53、新增幸运云购(修复幸运云购活动同步顺序问题导致的bug) --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py index 0129fbc..e972b26 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py @@ -483,7 +483,7 @@ curDateTime = GameWorld.GetServerTime() curDateTime = datetime.datetime.strptime("%d-%d-%d %d:%d:00" % (curDateTime.year, curDateTime.month, curDateTime.day, curDateTime.hour, curDateTime.minute), ChConfig.TYPE_Time_Format) - + actChangeList = [] sysnCrossActInfoDict = {} for actName in ShareDefine.CrossActNameList: if actName not in actTimeInfoDict or actName not in crossActInfoDict or actName not in actCfgIDInfoDict: @@ -562,9 +562,8 @@ if actName == ShareDefine.CrossActName_CTGBillboard: CrossActCTGBillboard.OnActIDChange(cfgID, dbTemplateID, state) - elif actName == ShareDefine.CrossActName_LuckyCloudBuy: - import CrossLuckyCloudBuy - CrossLuckyCloudBuy.OnLuckyCloudBuyReset(ipyData, state) + else: + actChangeList.append([actName, ipyData, state, cfgID, groupName, zoneID, dbActID, actID, forceReset, dbTemplateID]) # 非活动中的处理完关闭后,最后删除 if not state: @@ -576,6 +575,16 @@ # 同步子服务器 serverGroupIDList = [] CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_CrossActInfo, sysnCrossActInfoDict, serverGroupIDList) + + # 需要等活动等同步到子服后才处理以下逻辑,不然可能导致子服没有活动时间明细引起活动异常 + for changeInfo in actChangeList: + actName, ipyData, state, cfgID, groupName, zoneID, dbActID, actID, forceReset, dbTemplateID = changeInfo + GameWorld.Log(" 活动ID变更: actName=%s,cfgID=%s,groupName=%s,zoneID=%s,dbActID=%s -> actID=%s,forceReset=%s,dbTemplateID=%s" + % (actName, cfgID, groupName, zoneID, dbActID, actID, forceReset, dbTemplateID)) + + if actName == ShareDefine.CrossActName_LuckyCloudBuy: + import CrossLuckyCloudBuy + CrossLuckyCloudBuy.OnLuckyCloudBuyReset(ipyData, state) return def Sync_CrossActInfoToClientServer(serverGroupID=0): -- Gitblit v1.8.0