From 088edd63c5966e8159c3952cedbc2e748a8c08d9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 02 十二月 2021 18:31:40 +0800
Subject: [PATCH] 5295 【BT5_1.100.1】【BT5】【主干】【gt_1.102.1】开服运营活动异常重置(修复玩家0点整服务器处理onday前登录导致的运营活动重置)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index 1a81493..7ed6e28 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -65,7 +65,10 @@
# 跨服不处理运营活动
return
- isReload, OperationActionInfo = __GetOperationActionInfo()
+ # 玩家登录的不触发重载活动,不然刚好在0点服务器处理OnDay之前登录的时候会有问题
+ isReload, OperationActionInfo = __GetOperationActionInfo(needReload=False)
+ if not OperationActionInfo:
+ return
operationActionDict = OperationActionInfo[OperationAction_TodayInfo]
if isReload:
@@ -189,7 +192,7 @@
% (actName, cfgID, recStartDateStr, recEndDateStr, recLimitWorldLV, recWorldLV))
return actWorldLVLimitInfo
-def __GetOperationActionInfo(isRefreshState=True):
+def __GetOperationActionInfo(isRefreshState=True, needReload=True):
# @return: isReload, OperationActionInfo
key = "OperationActionInfo"
@@ -205,6 +208,9 @@
#GameWorld.DebugLog("已经加载过本日运营活动处理信息!openServerDay=%s" % openServerDay)
return False, OperationActionInfo
+ if not needReload:
+ return False, OperationActionInfo
+
# 因为后面的时间判断都是精确到分的,而处理此逻辑的时候可能不是0秒,所以这里的datetime取当前时间精确到分的
curDateTimeStr = "%d-%d-%d %02d:%02d:00" % (serverTime.year, serverTime.month, serverTime.day, serverTime.hour, serverTime.minute)
curDateTime = datetime.datetime.strptime(curDateTimeStr, ChConfig.TYPE_Time_Format)
--
Gitblit v1.8.0