From 2a7ed58c22dc878e52598fca4239f14f7cdf8076 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 25 七月 2024 14:55:31 +0800 Subject: [PATCH] 10216 【越南】【港台】【主干】【砍树】古神战场修改(系统场次战场中可购买召集,继承原召集场次效果) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py | 66 ++++++++++++++++++--------------- 1 files changed, 36 insertions(+), 30 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py index 87d092d..0e32197 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py @@ -76,42 +76,48 @@ serverOnly = clientData.ServerOnly if GameWorld.IsCrossServer(): - GameWorld.DebugLog("跨服服务器无法发起匹配!", playerID) + GameWorld.DebugLog("跨服服务器无法发起!", playerID) return if not CrossRealmPlayer.IsCrossServerOpen(): PlayerControl.NotifyCode(curPlayer, "CrossMatching18") return - if faction not in [ChConfig.CampType_Justice, ChConfig.CampType_Evil]: - GameWorld.DebugLog("没有该战场阵营选择! faction=%s" % faction, playerID) - return - - callOpenHMList = IpyGameDataPY.GetFuncEvalCfg("CrossBattlefieldOpen", 2) - if [hour, minute] not in callOpenHMList: - GameWorld.Log("非可召集的战场场次! hour=%s,minute=%s,callOpenHMList=%s" % (hour, minute, callOpenHMList), playerID) - return - - closeBuyMinute = IpyGameDataPY.GetFuncCfg("CrossBattlefieldOpen", 4) # 开启前X分钟后关闭购买 - crossServerTimeStr = GameWorld.GetCrossServerTimeStr() - crossServerDateTime = GameWorld.ChangeStrToDatetime(crossServerTimeStr) - - startTimeStr = "%s-%s-%s %s:%s:00" % (crossServerDateTime.year, crossServerDateTime.month, crossServerDateTime.day, hour, minute) - startDateTime = GameWorld.ChangeStrToDatetime(startTimeStr) - endBuyDateTime = startDateTime + datetime.timedelta(minutes= -closeBuyMinute) - if crossServerDateTime >= endBuyDateTime: - GameWorld.Log("该时间点战场已关闭召集,不能再召集! hour=%s,minute=%s,crossServerDateTime(%s) >= endBuyDateTime(%s)" - % (hour, minute, crossServerDateTime, endBuyDateTime), playerID) - return - - canBuyStartHour = 5 - curServerTime = GameWorld.GetCurrentTime() - if crossServerDateTime.hour < canBuyStartHour or curServerTime.hour < canBuyStartHour: - PlayerControl.NotifyCode(curPlayer, "CrossBattlefieldBuyLimit") - GameWorld.Log("跨服服务器及本服服务器需超过%s点后可购买! crossServerHour=%s,curServerHour=%s" - % (canBuyStartHour, crossServerDateTime.hour, curServerTime.hour), playerID) - return - + sysOpenHMList = IpyGameDataPY.GetFuncEvalCfg("CrossBattlefieldOpen", 1) + if [hour, minute] in sysOpenHMList: + if PlayerControl.GetCrossMapID(curPlayer) != ChConfig.Def_FBMapID_CrossBattlefield: + GameWorld.DebugLog("系统场次召集只能在跨服战场地图时可召集! CrossMapID=%s" % PlayerControl.GetCrossMapID(curPlayer), playerID) + return + else: + if faction not in [ChConfig.CampType_Justice, ChConfig.CampType_Evil]: + GameWorld.DebugLog("没有该战场阵营选择! faction=%s" % faction, playerID) + return + + callOpenHMList = IpyGameDataPY.GetFuncEvalCfg("CrossBattlefieldOpen", 2) + if [hour, minute] not in callOpenHMList: + GameWorld.Log("非可召集的战场场次! hour=%s,minute=%s,callOpenHMList=%s" % (hour, minute, callOpenHMList), playerID) + return + + closeBuyMinute = IpyGameDataPY.GetFuncCfg("CrossBattlefieldOpen", 4) # 开启前X分钟后关闭购买 + crossServerTimeStr = GameWorld.GetCrossServerTimeStr() + crossServerDateTime = GameWorld.ChangeStrToDatetime(crossServerTimeStr) + + startTimeStr = "%s-%s-%s %s:%s:00" % (crossServerDateTime.year, crossServerDateTime.month, crossServerDateTime.day, hour, minute) + startDateTime = GameWorld.ChangeStrToDatetime(startTimeStr) + endBuyDateTime = startDateTime + datetime.timedelta(minutes= -closeBuyMinute) + if crossServerDateTime >= endBuyDateTime: + GameWorld.Log("该时间点战场已关闭召集,不能再召集! hour=%s,minute=%s,crossServerDateTime(%s) >= endBuyDateTime(%s)" + % (hour, minute, crossServerDateTime, endBuyDateTime), playerID) + return + + canBuyStartHour = 5 + curServerTime = GameWorld.GetCurrentTime() + if crossServerDateTime.hour < canBuyStartHour or curServerTime.hour < canBuyStartHour: + PlayerControl.NotifyCode(curPlayer, "CrossBattlefieldBuyLimit") + GameWorld.Log("跨服服务器及本服服务器需超过%s点后可购买! crossServerHour=%s,curServerHour=%s" + % (canBuyStartHour, crossServerDateTime.hour, curServerTime.hour), playerID) + return + moneyBuyMaxCount, moneyType, moneyCount = 0, 0, 0 todayBuyOpenCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Battlefield_BuyOpenCountToday) buyOpenMoneyInfo = IpyGameDataPY.GetFuncEvalCfg("CrossBattlefieldBuyOpen", 1) -- Gitblit v1.8.0