From 7c48580fab636fbc0d59793431e4ac6a6f6ccc65 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 17 六月 2021 17:38:21 +0800
Subject: [PATCH] 8983 【港台】【BT2】【港台-1.100.7】【BT2-1.100.1】循环相关的活动配置优化(修复循环结束日当日无法开启活动bug)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py | 19 +++++++++++--------
1 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index b1083ac..43dd8b1 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -235,7 +235,7 @@
GameWorld.Log("加载运营活动: actName=%s,platform=%s,serverGroupID=%s" % (actName, platform, serverGroupID))
curServerActIpyDataList = __GetOperationActionServerIpyDataList(ipyDataMgr, platform, serverGroupID, actName)
GameWorld.Log(" 可处理条数=%s" % (len(curServerActIpyDataList)))
- actNumDisableWeekIpyDataInfo, disableWeekCfgIDList = __GetOperationActionDisableWeekIpyDataInfo(actName, curDateTime, curServerActIpyDataList)
+ actNumDisableWeekIpyDataInfo, disableWeekCfgIDDict = __GetOperationActionDisableWeekIpyDataInfo(actName, curDateTime, curServerActIpyDataList)
for ipyData in curServerActIpyDataList:
@@ -297,9 +297,9 @@
% (cfgID, startWeekDate, startDateStr, endWeekDate, endDateStr, ymdCfgID, ymdStartDate, ymdEndDate))
continue
- if cfgID in disableWeekCfgIDList:
- GameWorld.Log(" 常规活动,按星期开启的未到开启循环日期或已结束循环日期,不处理! cfgID=%s,startDateStr=%s,endDateStr=%s"
- % (cfgID, startDateStr, endDateStr))
+ if cfgID in disableWeekCfgIDDict:
+ GameWorld.Log(" 常规活动,按星期开启的未到开启循环日期或已结束循环日期,不处理! cfgID=%s,startDateStr=%s,endDateStr=%s, %s"
+ % (cfgID, startDateStr, endDateStr, disableWeekCfgIDDict[cfgID]))
continue
if actByWeek:
@@ -597,7 +597,10 @@
## 获取不可用的按星期X开启的配置数据信息,按星期X开启的 活动优先级小于按日期的,当有重叠时以日期的为准
#curWeekday = curDateTime.weekday() + 1 # 今天星期几, 1代表星期1
actNumWeekYMDIpyDataInfo = {} # {actNum:[weekIpyDataList, ymdIpyDatList], ...}
- disableWeekCfgIDList = [] # [cfgID, ...]
+ disableWeekCfgIDDict = {} # {cfgID:[startDateStr, endDateStr], ...}
+
+ curDateTimeYmdStr = "%d-%d-%d" % (curDateTime.year, curDateTime.month, curDateTime.day)
+ curDateTimeYmd = GameWorld.ChangeStrToDatetime(curDateTimeYmdStr, ChConfig.TYPE_Time_YmdFormat)
for ipyData in curServerActIpyDataList:
cfgID = ipyData.GetCfgID()
@@ -619,8 +622,8 @@
startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData)
startWeekDate = GameWorld.ChangeStrToDatetime(startDateStr, ChConfig.TYPE_Time_YmdFormat)
endWeekDate = GameWorld.ChangeStrToDatetime(endDateStr, ChConfig.TYPE_Time_YmdFormat)
- if startWeekDate > curDateTime or curDateTime >= endWeekDate: # 还未开始的循环 or 已经强制结束的循环
- disableWeekCfgIDList.append(cfgID)
+ if startWeekDate > curDateTimeYmd or curDateTimeYmd > endWeekDate: # 还未开始的循环 or 已经强制结束的循环
+ disableWeekCfgIDDict[cfgID] = [startDateStr, endDateStr]
else:
weekIpyDataList.append([ipyData, startWeekDate, endWeekDate])
@@ -647,7 +650,7 @@
ymdCfgID = ymdIpyData.GetCfgID()
actNumDisableWeekIpyDataInfo[actNum][cfgID] = [startWeekDate, endWeekDate, ymdCfgID, ymdStartDate, ymdEndDate]
- return actNumDisableWeekIpyDataInfo, disableWeekCfgIDList
+ return actNumDisableWeekIpyDataInfo, disableWeekCfgIDDict
def TransferOperationActDBKeyValue():
''' 服务器启动时调用
--
Gitblit v1.8.0