|  |  |  | 
|---|
|  |  |  | import time | 
|---|
|  |  |  | #--------------------------------------------------------------------- | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MaxCustomServerDay = 14 # 最大定制开服天数 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #年月日时间格式 | 
|---|
|  |  |  | Time_YmdFormat = ChConfig.TYPE_Time_YmdFormat | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | 
|---|
|  |  |  | 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点 | 
|---|
|  |  |  | 
|---|
|  |  |  | ## 获取运营活动本服务器对应的配置数据列表 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 所有配置先按活动标识归组 | 
|---|
|  |  |  | 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, {}) | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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)) | 
|---|
|  |  |  | 
|---|
|  |  |  | 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)) | 
|---|