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