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