From fcb20c084df8e7f61e01c5b9920875d669aa87ce Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期一, 03 十二月 2018 16:00:12 +0800 Subject: [PATCH] 5186 【测试】【1.3.100起】减少战斗广播量 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py | 70 +++++++++++++++++++++++++--------- 1 files changed, 51 insertions(+), 19 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py index 5e85a7e..60dd666 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py @@ -65,6 +65,7 @@ Help_leaderID = 'leaderID' #渡劫玩家ID Help_isHelp = 'isHelp' #本次是否是助战 Help_helpCount = 'helpCount' #该副本今日已助战次数 +Help_relation = 'relation' #该副本关系加成信息 [优先关系, 总加成] #副本结算信息通用key Over_dataMapID = 'dataMapID' #数据地图ID @@ -166,25 +167,12 @@ return ShareDefine.EntFBAskRet_FBClose #进入次数判断 - maxTimes = fbIpyData.GetDayTimes() - helpPoint = fbIpyData.GetHelpPoint() - if maxTimes and not helpPoint and mapID not in ChConfig.Def_NoLimitEnterCntMap: - enterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % mapID) - maxCnt = GetEnterFBMaxCnt(curPlayer, mapID) - if enterCnt + reqEnterCnt > maxCnt: - GameWorld.Log("已达到当日最大进入次数!mapID=%s,enterCnt=%s,reqEnterCnt=%s,maxTimes=%s,maxCnt=%s" - % (mapID, enterCnt, reqEnterCnt, maxTimes, maxCnt), playerID) - if isNotify: - PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_268121", [mapID]) - return ShareDefine.EntFBAskRet_NoEnterCnt - - if not isTeamAsk and fbIpyData.GetDayHelpCountMax(): - if not curPlayer.GetTeamID() or curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_TeamMemCount) == 1: - if isNotify: - PlayerControl.NotifyCode(curPlayer, "TeamSingleEnter", [mapID]) - return ShareDefine.EntFBAskRet_NoEnterCnt - - # 周今日次数暂不做,待扩展... + canEnter, notifyMark = __CheckCanEnterFBByTime(curPlayer, mapID, fbIpyData, reqEnterCnt, isTeamAsk) + if not canEnter: + if notifyMark: + PlayerControl.NotifyCode(curPlayer, notifyMark, [mapID]) + return ShareDefine.EntFBAskRet_NoEnterCnt + #进入CD判断 if CheckIsEnterCD(curPlayer, mapID): if isNotify: @@ -226,6 +214,50 @@ return ShareDefine.EntFBAskRet_OK +def __CheckCanEnterFBByTime(curPlayer, mapID, fbIpyData, reqEnterCnt, isTeamAsk): + #进入次数判断 + maxTimes = fbIpyData.GetDayTimes() + if not maxTimes: + return True, "" + + #playerID = curPlayer.GetPlayerID() + enterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % mapID) + maxCnt = GetEnterFBMaxCnt(curPlayer, mapID) + if enterCnt + reqEnterCnt <= maxCnt: + return True, "" + + ### 以下是到达次数上限后的处理 + fbType = GameWorld.GetMap().GetMapFBTypeByMapID(mapID) + + # 单人副本达到次数后不可再进入 + if fbType == IPY_GameWorld.fbtSingle: + #GameWorld.Log("已达到当日最大进入次数!单人副本 mapID=%s,enterCnt=%s,reqEnterCnt=%s,maxTimes=%s,maxCnt=%s" + # % (mapID, enterCnt, reqEnterCnt, maxTimes, maxCnt), playerID) + return False, "GeRen_chenxin_268121" + + # 组队副本 + if fbType == IPY_GameWorld.fbtTeam: + # 无助战的不可再进入 + if not fbIpyData.GetHelpPoint(): + #GameWorld.Log("已达到当日最大进入次数!组队副本 mapID=%s,enterCnt=%s,reqEnterCnt=%s,maxTimes=%s,maxCnt=%s" + # % (mapID, enterCnt, reqEnterCnt, maxTimes, maxCnt), playerID) + return False, "GeRen_chenxin_268121" + + # 可助战的不可单人进入助战,可发起匹配 + if not isTeamAsk and (not curPlayer.GetTeamID() or curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_TeamMemCount) <= 1): + #GameWorld.Log("已达到当日最大进入次数!组队副本不可单人助战! mapID=%s,enterCnt=%s,reqEnterCnt=%s,maxTimes=%s,maxCnt=%s" + # % (mapID, enterCnt, reqEnterCnt, maxTimes, maxCnt), playerID) + return False, "TeamSingleEnter" + + elif mapID not in ChConfig.Def_NoLimitEnterCntMap: + #GameWorld.Log("已达到当日最大进入次数! mapID=%s,enterCnt=%s,reqEnterCnt=%s,maxTimes=%s,maxCnt=%s" + # % (mapID, enterCnt, reqEnterCnt, maxTimes, maxCnt), playerID) + return False, "GeRen_chenxin_268121" + + # 周进入次数暂不做,待扩展... + + return True, "" + ## 获取副本进入门票信息 # @param curPlayer 玩家实例 # @param mapID 地图id -- Gitblit v1.8.0