ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
@@ -18,7 +18,6 @@
import IPY_GameWorld
import PlayerControl
import GameWorldProcess
import PlayerMergeEvent
import ReadChConfig
import ShareDefine
import FBCommon
@@ -325,13 +324,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 +354,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 +494,7 @@
    gameMapID = gameMap.GetMapID()
    
    #如果已经设置过副本功能线路属性,则进入时同步玩家,一般下线重登或者非第一个进入该副本的玩家(如队友)会收到该包
    if FBCommon.GetHadSetFBPropertyMark():
    if FBCommon.GetHadSetFBPropertyMark() and gameMap.GetMapFBType() != IPY_GameWorld.fbtSingle:
        PlayerControl.SetFBFuncLineID(curPlayer, FBCommon.GetFBPropertyMark())
        
    #成长NPC所需数据初始化
@@ -523,6 +532,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 +694,6 @@
    if callFunc:
        #GameWorld.Log("副本逻辑不可使用   GameLogic_%d"%(mapID))
        callFunc(curPlayer , tick)
    #有玩家离开副本广播一次
    PlayerMergeEvent.BroadcastMergePlayerEvent()
    
    #如果是最后一个人离开副本, 那么设置副本的离开时间, 5分钟后副本关闭
    __PlayerLeaveSetPlayerLogoffTick(curPlayer, tick)
@@ -862,6 +880,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 +909,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 +919,7 @@
        return False
    
    #执行副本逻辑
    callFunc(curPlayer, tick)
    callFunc(curPlayer, npcID, tick)
    return
## 玩家离开副本
@@ -1195,7 +1225,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 +1469,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 +1926,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 +2138,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)