From 9c7acc7f02e130a8b742ec21579fdf5e6640d3cc Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 16 十一月 2018 15:18:59 +0800
Subject: [PATCH] 2683 支持召唤兽-灵类型可继承主人为NPC的完整属性
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py | 30 +++++++++++++++++++++---------
1 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index dcaa4ab..ca3a496 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, {})
@@ -559,7 +571,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 +823,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