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 | 79 +++++++++++++++++++++++++++++++++------ 1 files changed, 66 insertions(+), 13 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 ac35418..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) @@ -355,6 +355,16 @@ return +def DoFBOnNPCKill_Player(curNPC, curPlayer, tick): + ## 副本内NPC杀人 + do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID()) + + callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBOnNPCKill_Player")) + + if callFunc: + #GameWorld.Log("副本逻辑不可使用 GameLogic_%d"%(mapID)) + return callFunc(curNPC, curPlayer, tick) + return #--------------------------------------------------------------------- ## 任务专用,触发事件(副本内攻击人) # @param curPlayer 攻击者 @@ -485,7 +495,7 @@ gameMapID = gameMap.GetMapID() #如果已经设置过副本功能线路属性,则进入时同步玩家,一般下线重登或者非第一个进入该副本的玩家(如队友)会收到该包 - if FBCommon.GetHadSetFBPropertyMark(): + if FBCommon.GetHadSetFBPropertyMark() and gameMap.GetMapFBType() != IPY_GameWorld.fbtSingle: PlayerControl.SetFBFuncLineID(curPlayer, FBCommon.GetFBPropertyMark()) #成长NPC所需数据初始化 @@ -507,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): @@ -523,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): @@ -673,9 +698,6 @@ if callFunc: #GameWorld.Log("副本逻辑不可使用 GameLogic_%d"%(mapID)) callFunc(curPlayer , tick) - - #有玩家离开副本广播一次 - PlayerMergeEvent.BroadcastMergePlayerEvent() #如果是最后一个人离开副本, 那么设置副本的离开时间, 5分钟后副本关闭 __PlayerLeaveSetPlayerLogoffTick(curPlayer, tick) @@ -862,6 +884,18 @@ callFunc(tick) return +## 开始采集 +# @param curPlayer 当前玩家 +# @param curNPC 当前NPC +# @return None or False +# @remarks 函数详细说明. +def OnBeginCollect(curPlayer, curNPC): + do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID()) + callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnBeginCollect")) + if callFunc: + callFunc(curPlayer, curNPC) + return + ## 收集中(家族战副本中的棋和塔) # @param curPlayer 当前玩家 # @param tick 当前时间 @@ -879,7 +913,7 @@ # @param tick 当前时间 # @return None or False # @remarks 函数详细说明. -def OnCollectOK(curPlayer, tick): +def OnCollectOK(curPlayer, npcID, tick): do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID()) callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCollectOK")) @@ -889,7 +923,7 @@ return False #执行副本逻辑 - callFunc(curPlayer, tick) + callFunc(curPlayer, npcID, tick) return ## 玩家离开副本 @@ -1195,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 #玩家 在副本中,并且副本不踢出玩家下线 @@ -1439,6 +1473,17 @@ return False 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): @@ -1885,14 +1930,14 @@ # @param mapID 玩家 # @param tick 当前时间 # @return None-未找到,线路id - 0~N -def GetFBLineMaxPlayerCount(mapID): +def GetFBLineMaxPlayerCount(mapID, lineID): do_FBLogic_ID = __GetFBLogic_MapID(mapID) callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBLineMaxPlayerCount")) if callFunc: - return callFunc() + return callFunc(lineID) return 0 @@ -2097,3 +2142,11 @@ return callFunc(curPlayer, tick) +def OnPlayerLVUp(curPlayer): + ## 玩家升级 + do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID()) + callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerLVUp")) + if callFunc == None: + return False + return callFunc(curPlayer) + \ No newline at end of file -- Gitblit v1.8.0