From 4e3d1ff7e0b98fc18b0b6e63e449f3d7577c0ba6 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 05 十一月 2025 11:16:31 +0800
Subject: [PATCH] 16 卡牌服务端(功能开启增加开服天条件支持;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py       |    4 +++-
 PySysDB/PySysDBPY.h                                                                        |    1 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py |    6 ++++++
 3 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 916abe9..e553401 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -551,6 +551,7 @@
 	DWORD		LimitLV;	//开启等级
 	WORD		LimiRealmLV;	//需要境界等级
 	DWORD		LimitMissionID;	//需要完成的任务ID
+	WORD		LimitOpenDay;	//开服第几天开启
 	char		MailKey;	//邮件
 };
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 6ae847e..a6eecb9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -494,6 +494,7 @@
                         ("DWORD", "LimitLV", 0),
                         ("WORD", "LimiRealmLV", 0),
                         ("DWORD", "LimitMissionID", 0),
+                        ("WORD", "LimitOpenDay", 0),
                         ("char", "MailKey", 0),
                         ),
 
@@ -2883,7 +2884,8 @@
     def GetLimitLV(self): return self.attrTuple[1] # 开启等级 DWORD
     def GetLimiRealmLV(self): return self.attrTuple[2] # 需要境界等级 WORD
     def GetLimitMissionID(self): return self.attrTuple[3] # 需要完成的任务ID DWORD
-    def GetMailKey(self): return self.attrTuple[4] # 邮件 char
+    def GetLimitOpenDay(self): return self.attrTuple[4] # 开服第几天开启 WORD
+    def GetMailKey(self): return self.attrTuple[5] # 邮件 char
 
 # 合成表
 class IPY_ItemCompound():
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 87be5dd..482b25c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -37,6 +37,7 @@
 import PlayerHorse
 import PlayerArena
 import PlayerTask
+import DBDataMgr
 
 
 # 功能开启需执行的函数{功能ID:执行函数, ...} 函数需返回是否激活成功, 功能开启有需要处理功能逻辑的这里增加函数调用配置即可
@@ -54,6 +55,7 @@
     '''
     #GameWorld.DebugLog("执行触发功能开启逻辑: finishMissionIDList=%s" % finishMissionIDList, curPlayer.GetPlayerID())
     
+    serverDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
     openFuncIDList = []
     curLV = curPlayer.GetLV()
     ipyGameData = IpyGameDataPY.IPY_Data()
@@ -84,6 +86,10 @@
         if limitMissionID and not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_MissionFinish % limitMissionID):
             continue
         
+        limitOpenDay = ipyData.GetLimitOpenDay()
+        if limitOpenDay and serverDay < limitOpenDay:
+            continue
+        
         # 先更新值再处理开启逻辑,不能可能导致在功能开启逻辑中再开启功能引发的递归死循环
         befValue, updValue = GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, 1)
         if befValue == updValue:

--
Gitblit v1.8.0