From 78eba407c2b7d68096500e9013add9141b13f52c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 21 九月 2018 23:37:11 +0800
Subject: [PATCH] 3798 【后端】运营活动时间优化,开服日常限时活动定制时间优化

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py |   25 +++++++++++++++++++++++--
 1 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py
index 82917dc..a75a629 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py
@@ -66,6 +66,9 @@
 #服务器运行了几天
 Def_ServerDay = 'ServerDay'
 
+#开服是周几, 1代表周一
+Def_OpenServerWeekday = 'OpenServerWeekday'
+
 #服务器是否是合服服务器
 Def_IsMixServer = 'IsMixServer'
 
@@ -81,9 +84,14 @@
 #上次开服天数开启的活动时的时间(Def_ServerDay的值)
 Def_ServerLastOpenActionDay = "ServerLastOpenActionDay"
 
-#首次开服时间
+#首次开服时间,注意不要用该日期做开服天相关的功能逻辑,如果要用开服天,请用 Def_ServerDay
+''' 原因: 
+因为目前开服天的逻辑大部分是用 Def_ServerDay,当出现服务器宕机超过24小时时,就会导致 Def_ServerDay 与 Def_InitOpenServerTime 不对应
+所以为了功能逻辑和数据的统一性,开服天相关的功能逻辑必须用 Def_ServerDay
+Def_InitOpenServerTime 目前仅用于预先设置开服日期用
+'''
 Def_InitOpenServerTime = 'InitOpenServerTime'
-Def_SetOpenServerTime = 'SetOpenServerTime' # 设置的开服时间
+Def_SetOpenServerTime = 'SetOpenServerTime' # GM工具预定的开服时间
 
 #仙盟联赛当前战斗轮次
 Def_FamilyWar_Round = 'FamilyWar_Round'
@@ -149,6 +157,19 @@
 #boss复活活动已复活次数
 Def_BossRebornCnt = "BossRebornCnt"
 
+def SetInitOpenServerTime(initTime):
+    openDatetime = GameWorld.ChangeTimeNumToDatetime(initTime)
+    openServerWeekday = openDatetime.weekday() + 1
+    SetDBGSTrig_ByKey(Def_InitOpenServerTime, initTime)
+    SetDBGSTrig_ByKey(Def_OpenServerWeekday, openServerWeekday)
+    GameWorld.Log("设置开服时间: %s(%s), 周%s" % (openDatetime, initTime, openServerWeekday))
+    # 需要这个参数主要是GM工具会判断是否有设置过,所以该值一般只有GM命令或工具才能设置
+    setOpenServerTime = GetDBGSTrig_ByKey(Def_SetOpenServerTime)
+    if setOpenServerTime and setOpenServerTime != initTime:
+        SetDBGSTrig_ByKey(Def_SetOpenServerTime, initTime)
+        GameWorld.Log("    同步更新 Def_SetOpenServerTime=%s" % initTime)
+    return
+
 ## 查找事件
 #  @param findID 查找的ID
 #  @param key 与ID组合成key

--
Gitblit v1.8.0