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