From cfaff69cf9285c06199797763dd984038c13c38a Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期六, 24 十一月 2018 15:39:30 +0800 Subject: [PATCH] 2443 【1.3】暴击神兵无法解封 --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py | 33 +++++++++++++++++++++++---------- 1 files changed, 23 insertions(+), 10 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py index c185620..70ac533 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py @@ -49,8 +49,6 @@ import time #--------------------------------------------------------------------- -MaxCustomServerDay = 14 # 最大定制开服天数 - #年月日时间格式 Time_YmdFormat = ChConfig.TYPE_Time_YmdFormat @@ -128,7 +126,7 @@ 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) - customMaxServerDay = MaxCustomServerDay # 定制运营活动最大开服天 + customMaxServerDay = IpyGameDataPY.GetFuncCfg("OperationAction", 1) # 定制运营活动最大开服天 operationActionDict = {} mapServerOperationActionDict = {} serverID = GameWorld.GetServerID() @@ -166,11 +164,17 @@ startDateStr = "%d-%d-%d" % (openServerDateTime.year, openServerDateTime.month, openServerDateTime.day) endDateStr = "%d-%d-%d" % (endServerDateTime.year, endServerDateTime.month, endServerDateTime.day) GameWorld.Log(" 开服天转化为日期: %s ~ %s" % (startDateStr, endDateStr)) + else: + if openServerDay <= customMaxServerDay: + GameWorld.Log(" 按日期开的在开服定制限制天内,不处理! cfgID=%s,%s ~ %s,openServerDay=%s" % (cfgID, startDateStr, endDateStr, openServerDay)) + continue + customMaxServerDateTime = curDateTime + datetime.timedelta(days=(customMaxServerDay-openServerDay)) + curStartDateTime = datetime.datetime.strptime("%s %02d:%02d:%02d" % (startDateStr, customMaxServerDateTime.hour, customMaxServerDateTime.minute, + customMaxServerDateTime.second), ChConfig.TYPE_Time_Format) + if curStartDateTime <= customMaxServerDateTime: + GameWorld.Log(" 按日期开的开始日期在开服定制限制天内,不处理! cfgID=%s,curStartDateTime=%s,customMaxServerDateTime=%s" % (cfgID, curStartDateTime, customMaxServerDateTime)) + continue - elif openServerDay <= customMaxServerDay: - GameWorld.Log(" 按日期开的在开服定制限制天内,不处理! cfgID=%s,%s ~ %s,openServerDay=%s" % (cfgID, startDateStr, endDateStr, openServerDay)) - continue - if hasattr(ipyData, "GetStartTimeList") and hasattr(ipyData, "GetEndTimeList"): startHMStrList = ipyData.GetStartTimeList() endHMStrList = ipyData.GetEndTimeList() @@ -191,6 +195,9 @@ if resetType == 1: startDayDate = datetime.datetime.strptime("%s 05:00:00" % (startDateStr), ChConfig.TYPE_Time_Format) endDayDate = datetime.datetime.strptime("%s 05:00:00" % (endDateStr), ChConfig.TYPE_Time_Format) # 结束日期5点 + elif resetType == 2: + startDayDate = datetime.datetime.strptime("%s 05:00:00" % (startDateStr), ChConfig.TYPE_Time_Format) + endDayDate = datetime.datetime.strptime("%s 00:00:00" % (endDateStr), ChConfig.TYPE_Time_Format) + datetime.timedelta(days=1) # 结束日期隔天0点 else: startDayDate = datetime.datetime.strptime("%s 00:00:00" % (startDateStr), ChConfig.TYPE_Time_Format) endDayDate = datetime.datetime.strptime("%s 00:00:00" % (endDateStr), ChConfig.TYPE_Time_Format) + datetime.timedelta(days=1) # 结束日期隔天0点 @@ -338,11 +345,16 @@ ## 获取运营活动本服务器对应的配置数据列表 # 所有配置先按活动标识归组 + platform = GameWorld.GetPlatform() actGroupDict = {} # {ActMark:{ServerIDTuple:[ipyData, ...], ...}, ...} actCfgCount = getattr(ipyDataMgr, "Get%sCount" % actName)() for cfgIndex in xrange(actCfgCount): ipyData = getattr(ipyDataMgr, "Get%sByIndex" % actName)(cfgIndex) actMark = ipyData.GetActMark() + platformList = [] if not hasattr(ipyData, "GetPlatformList") else ipyData.GetPlatformList() + if platformList and platform not in platformList: + GameWorld.Log("非本平台活动,不取!platform=%s,platformList=%s,actName=%s,cfgID=%s" % (platform, platformList, actName, ipyData.GetCfgID())) + continue serverIDTuple = tuple(ipyData.GetServerIDList()) serverIpyDataDict = actGroupDict.get(actMark, {}) @@ -445,7 +457,7 @@ - if state == 1 and actName in ShareDefine.NeedWorldLVOperationActNameList: + if state >= 1 and actName in ShareDefine.NeedWorldLVOperationActNameList: actWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % actName) sendMapServerMsgDict[ShareDefine.ActKey_WorldLV] = actWorldLV @@ -527,6 +539,7 @@ multiRealmPointInfo.EndtDate = GameWorld.GetOperationActionDateStr(ipyData.GetEndDate(), openServerDay) multiRealmPointInfo.Multiple = ipyData.GetMultiple() multiRealmPointInfo.LimitLV = ipyData.GetLVLimit() + multiRealmPointInfo.LimitPoint = ipyData.GetPointLimit() if not curPlayer: # 全服广播在线玩家 playerManager = GameWorld.GetPlayerManager() @@ -559,7 +572,7 @@ curDateStr = GameWorld.ChangeTimeNumToStr(curTime, ChConfig.TYPE_Time_YmdFormat) # 当天日期 openServerWeekday = GameWorldProcess.GetOpenServerWeekday() # 服务器开服时是星期几 - curMaxCustomServerDay = MaxCustomServerDay - openServerWeekday + 1 # 最大有效定制开服天 + curMaxCustomServerDay = IpyGameDataPY.GetFuncCfg("OperationAction", 1) - openServerWeekday + 1 # 最大有效定制开服天 GameWorld.Log("===== 加载今天日常活动信息 =====") GameWorld.Log(" 开服是星期%s, 开服第%s天, 当前星期%s" % (openServerWeekday, openServerDay, weekDay)) GameWorld.Log(" 最大有效定制开服天: %s" % (curMaxCustomServerDay)) @@ -811,7 +824,7 @@ GameWorld.ErrLog("获取开服是星期几数据错误!openServerWeekday=%s" % openServerWeekday) return [] - curMaxCustomServerDay = MaxCustomServerDay - openServerWeekday + 1 # 最大有效定制开服天 + curMaxCustomServerDay = IpyGameDataPY.GetFuncCfg("OperationAction", 1) - openServerWeekday + 1 # 最大有效定制开服天 GameWorld.Log("===== 加载今天副本状态时间表 =====") GameWorld.Log(" 开服是星期%s, 开服第%s天, 当前星期%s,%s点%s分 !" % (openServerWeekday, openServerDay, curWeekDay, curHour, curMinute)) GameWorld.Log(" 最大有效定制开服天: %s" % (curMaxCustomServerDay)) -- Gitblit v1.8.0