From 844b9b3c0247066b2b9489f7642646ec39c86961 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 25 十一月 2025 19:44:24 +0800
Subject: [PATCH] 16 卡牌服务端(增加GM命令设置开服天 ServerDay;优化OpenFunc命令不受开服天限制;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ServerDay.py     |   72 ++++++++++++++++++++++++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py      |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py       |    4 +-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py |    3 +
 4 files changed, 77 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py
index 8cb4ac3..a5c4857 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/OpenFunc.py
@@ -121,7 +121,7 @@
             
     GameWorld.DebugLog("GM处理任务开启功能: needMissionIDList=%s" % needMissionIDList, curPlayer.GetPlayerID())
     #最后强制触发一次
-    GameFuncComm.DoFuncOpenLogic(curPlayer)
+    GameFuncComm.DoFuncOpenLogic(curPlayer, checkServerDay=False)
     return
 
 def __GetOpenFuncLimit(curPlayer, openFuncIDList):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ServerDay.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ServerDay.py
new file mode 100644
index 0000000..57cea70
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ServerDay.py
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package GM.Commands.ServerDay
+#
+# @todo:服务器天
+# @author hxp
+# @date 2025-11-25
+# @version 1.0
+#
+# 详细描述: 服务器天
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2025-11-25 19:30"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+import ShareDefine
+import GameWorldEvent
+import PlayerSignDay
+import GameFuncComm
+import DBDataMgr
+import ChPlayer
+
+import time
+
+def OnExec(curPlayer, cmdList):
+    
+    if not cmdList:
+        GameWorld.DebugAnswer(curPlayer, "设置开服天: ServerDay 第几天")
+        GameWorld.DebugAnswer(curPlayer, "重置开服天: ServerDay 1")
+        __printServerDay(curPlayer)
+        return
+    
+    value = cmdList[0]
+    
+    if value <= 1:
+        __clearOpenServerDay(curPlayer)
+    elif value > 1:
+        __setOpenServerDay(curPlayer, value)
+        
+    GameFuncComm.DoFuncOpenLogic(curPlayer)
+    __printServerDay(curPlayer)
+    ChPlayer.Sync_OpenServerDay(curPlayer)
+    return True
+
+def __printServerDay(curPlayer):
+    ServerDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
+    IsMixServer = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_IsMixServer)
+    MixDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_MixServerDay) + 1
+    OpenWeekday = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_OpenServerWeekday)
+    GameWorld.DebugAnswer(curPlayer, '开服星期%s, 天数:%s 是否合服:%s, 合服天数:%s' % (OpenWeekday, ServerDay, IsMixServer, MixDay))
+    return
+
+def __clearOpenServerDay(curPlayer):
+    #重置开服天,设置非合服
+    GameWorld.DebugAnswer(curPlayer, "重置开服天")
+    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_ServerWeek, 0)
+    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_ServerDay, 0)
+    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_IsMixServer, 0)
+    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_MixServerDay, 0)
+    
+    curTime = int(time.time())
+    GameWorldEvent.SetInitOpenServerTime(curTime)
+    
+    PlayerSignDay.ResetDaySign(curPlayer)
+    return
+
+def __setOpenServerDay(curPlayer, serverDay):
+    DBDataMgr.GetEventTrigMgr().SetValue(ShareDefine.Def_ServerDay, serverDay - 1)
+    return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
index 667d289..e88407c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -49,7 +49,7 @@
 
 def GetFuncOpenLVIpyData(funcID): return IpyGameDataPY.GetIpyGameData("FuncOpenLV", funcID)
 
-def DoFuncOpenLogic(curPlayer):
+def DoFuncOpenLogic(curPlayer, checkServerDay=True):
     '''执行触发功能开启逻辑
     @param finishMissionIDList: 完成的任务ID列表
     '''
@@ -87,7 +87,7 @@
             continue
         
         limitOpenDay = ipyData.GetLimitOpenDay()
-        if limitOpenDay and serverDay < limitOpenDay:
+        if limitOpenDay and serverDay < limitOpenDay and checkServerDay:
             continue
         
         # 先更新值再处理开启逻辑,不能可能导致在功能开启逻辑中再开启功能引发的递归死循环
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
index 1148f7f..47b50b2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -85,6 +85,7 @@
 import PlayerXiangong
 import PlayerBillboard
 import PlayerViewCache
+import GameFuncComm
 import PlayerMail
 import PlayerHero
 import PlayerTree
@@ -244,7 +245,7 @@
     
     # 常规过天
     if onEventType == ShareDefine.Def_OnEventType:
-        
+        GameFuncComm.DoFuncOpenLogic(curPlayer)
         #清空每日事件奖励
         curPlayer.SetDayProcessGameEventCount(0)
         

--
Gitblit v1.8.0