| | |
| | | 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:
|
| | |
| | |
|
| | | 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
|