From 7b48b6e603e2eeeacdb737210d74212ed77f7943 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期六, 16 三月 2019 17:38:03 +0800 Subject: [PATCH] 6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(使用拍品数据同步优化) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py | 41 ++++++++++++++++++++++++++++++++--------- 1 files changed, 32 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 aff2794..6d8d8c7 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 @@ -325,13 +325,13 @@ return -## 副本中召唤兽死亡(被击杀或者时间到等) +## 副本中NPC死亡(被击杀或者时间到等) # @param curNPC # @return None. -def DoFB_SummonNPCDead(curNPC): +def DoFB_NPCDead(curNPC): do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID()) - callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_SummonNPCDead")) + callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_NPCDead")) if callFunc: callFunc(curNPC) @@ -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): @@ -533,6 +536,18 @@ if callFunc != None: GameWorld.Log("DoEnterFBLogic...", curPlayer.GetPlayerID()) callFunc(curPlayer, tick) + return + +def OnCallHelpBattleOK(curPlayer, tick): + ## 召唤助战完成 + do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID()) + + callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCallHelpBattleOK")) + + if callFunc != None: + GameWorld.Log("OnCallHelpBattleOK...", curPlayer.GetPlayerID()) + callFunc(curPlayer, tick) + return def InitFBNPCStrengthenData(curPlayer, gameMap): @@ -683,9 +698,6 @@ if callFunc: #GameWorld.Log("副本逻辑不可使用 GameLogic_%d"%(mapID)) callFunc(curPlayer , tick) - - #有玩家离开副本广播一次 - PlayerMergeEvent.BroadcastMergePlayerEvent() #如果是最后一个人离开副本, 那么设置副本的离开时间, 5分钟后副本关闭 __PlayerLeaveSetPlayerLogoffTick(curPlayer, tick) @@ -1217,7 +1229,7 @@ def PlayerLoginInFBCheck(curPlayer, tick): gameMap = GameWorld.GetMap() #如果此地图是自动释放的, 需要检查这个玩家 - if gameMap.GetMapFBType() == 0: + if gameMap.GetMapFBType() in [IPY_GameWorld.fbtNull, IPY_GameWorld.fbtCrossVSRoom]: return False #玩家 在副本中,并且副本不踢出玩家下线 @@ -1462,6 +1474,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