From 701ebec9f6cca57f0ccffc0239cf9d8e25722eb0 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期五, 12 四月 2019 14:23:38 +0800 Subject: [PATCH] 6457 【后端】【2.0】缥缈仙域开发单(通知修改) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py | 30 +++++++++++++++++++++--------- 1 files changed, 21 insertions(+), 9 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py index 95a161c..a80245c 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py @@ -18,7 +18,7 @@ import IPY_GameWorld import PlayerControl import GameWorldProcess -import PlayerMergeEvent +import PlayerSuccess import ReadChConfig import ShareDefine import FBCommon @@ -495,7 +495,7 @@ gameMapID = gameMap.GetMapID() #如果已经设置过副本功能线路属性,则进入时同步玩家,一般下线重登或者非第一个进入该副本的玩家(如队友)会收到该包 - if FBCommon.GetHadSetFBPropertyMark(): + if FBCommon.GetHadSetFBPropertyMark() and gameMap.GetMapFBType() != IPY_GameWorld.fbtSingle: PlayerControl.SetFBFuncLineID(curPlayer, FBCommon.GetFBPropertyMark()) #成长NPC所需数据初始化 @@ -517,12 +517,15 @@ #注册玩家离开副本时间 gameFBMgr.SetPlayerLogoffTick(0) + PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_EnterMap, 1, [gameMapID]) + if gameFBMgr.HaveFBPlayer(curPlayerID): #已经注册了这个玩家, 不清除已注册的玩家的字典信息 return #注册进入这个副本的玩家 gameFBMgr.AddFBPlayer(curPlayerID) + return def DoEnterFB(curPlayer, tick): @@ -695,9 +698,6 @@ if callFunc: #GameWorld.Log("副本逻辑不可使用 GameLogic_%d"%(mapID)) callFunc(curPlayer , tick) - - #有玩家离开副本广播一次 - PlayerMergeEvent.BroadcastMergePlayerEvent() #如果是最后一个人离开副本, 那么设置副本的离开时间, 5分钟后副本关闭 __PlayerLeaveSetPlayerLogoffTick(curPlayer, tick) @@ -1229,7 +1229,11 @@ def PlayerLoginInFBCheck(curPlayer, tick): gameMap = GameWorld.GetMap() #如果此地图是自动释放的, 需要检查这个玩家 - if gameMap.GetMapFBType() == 0: + if gameMap.GetMapFBType() in [IPY_GameWorld.fbtNull]: + return False + + #跨服服务器是直接注册的地图ID数据,地图肯定没有该玩家,所以不判断 + if GameWorld.IsCrossServer(): return False #玩家 在副本中,并且副本不踢出玩家下线 @@ -1263,9 +1267,6 @@ # @return mapID # @remarks 函数详细说明. def __GetFBLogic_MapID(mapID): - #ManorWarMapIDList = ReadChConfig.GetEvalChConfig("ManorWarMapID") - #if mapID in ManorWarMapIDList: - # return 'ManorWar' mapID = FBCommon.GetRecordMapID(mapID) for key, value in ChConfig.Def_FB_MapID.items(): if mapID in value: @@ -1474,6 +1475,17 @@ return callFunc(curPlayer, mapID, lineID, cnt, isFinish, dataEx) +## 副本助战扫荡结果 +def OnPlayerFBHelpBattleSweepResult(curPlayer, mapID, lineID, helpBattlePlayerDict, addXianyuanCoin, reason): + do_FBLogic_ID = __GetFBLogic_MapID(mapID) + + callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBHelpBattleSweepResult")) + + if callFunc == None: + return False + + return callFunc(curPlayer, mapID, lineID, helpBattlePlayerDict, addXianyuanCoin, reason) + ## 开始公共CD副本扫荡 def OnStartPubCDFBSweep(curPlayer, mapID, lineID, cnt, dataEx): do_FBLogic_ID = __GetFBLogic_MapID(mapID) -- Gitblit v1.8.0