| | |
| | | # @return None
|
| | | # @remarks 函数详细说明.
|
| | | def DoFB_Player_KillNPC(curPlayer , curNPC , tick):
|
| | | mapID = PlayerControl.GetCustomMapID(curPlayer)
|
| | | lineID = PlayerControl.GetCustomLineID(curPlayer)
|
| | | if mapID:
|
| | | DoCustomScene_Player_KillNPC(curPlayer, curNPC, mapID, lineID)
|
| | | return
|
| | | |
| | | do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
| | |
|
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_Player_KillNPC"))
|
| | |
| | | # @return None
|
| | | # @remarks 函数详细说明.
|
| | | def DoFBOnKill_Player(curPlayer, defender, tick):
|
| | | mapID = PlayerControl.GetCustomMapID(curPlayer)
|
| | | if not mapID:
|
| | | mapID = GameWorld.GetMap().GetMapID()
|
| | | mapID = GameWorld.GetMap().GetMapID()
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | |
|
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBOnKill_Player"))
|
| | |
| | | playerZoneID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBZoneID)
|
| | | playerFuncLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBFuncLine)
|
| | | # 跨服排位分区与玩家分区可能不一样
|
| | | if (fbZoneID != playerZoneID or fbFuncLineID != playerFuncLineID) and mapID not in [ChConfig.Def_FBMapID_CrossChampionship]:
|
| | | if (fbZoneID != playerZoneID or fbFuncLineID != playerFuncLineID) and mapID not in []:
|
| | | GameWorld.ErrLog("DoEnterFB 玩家与当前副本线路所属分区或功能分线不同,踢出玩家!fbZoneID=%s,playerZoneID=%s,fbFuncLineID=%s,playerFuncLineID=%s"
|
| | | % (fbZoneID, playerZoneID, fbFuncLineID, playerFuncLineID), curPlayerID)
|
| | | CrossRealmPlayer.PlayerExitCrossServer(curPlayer)
|
| | |
| | | callFunc(tick)
|
| | | return
|
| | |
|
| | | def OnCustomSceneProcess(curPlayer, tick):
|
| | | customMapID = PlayerControl.GetCustomMapID(curPlayer)
|
| | | if not customMapID:
|
| | | return
|
| | | customLineID = PlayerControl.GetCustomLineID(curPlayer)
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(customMapID)
|
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCustomSceneProcess"))
|
| | | if callFunc:
|
| | | callFunc(curPlayer, customMapID, customLineID, tick)
|
| | | |
| | | return
|
| | |
|
| | | ## 开始采集
|
| | | # @param curPlayer 当前玩家
|
| | | # @param curNPC 当前NPC
|
| | |
| | | def OnFBPlayerOnDay(curPlayer, onDayType):
|
| | | for key, mapIDList in ChConfig.Def_FB_MapID.items():
|
| | | if not mapIDList:
|
| | | continue
|
| | | mapID = mapIDList[0]
|
| | | ipyData = FBCommon.GetFBIpyData(mapID)
|
| | | if ipyData and ipyData.GetDayResetType():
|
| | | if onDayType != ipyData.GetDayResetType():
|
| | | continue
|
| | | elif onDayType != ShareDefine.Def_OnEventTypeEx:
|
| | | continue
|
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (key, "OnFBPlayerOnDay"))
|
| | | if callFunc:
|
| | |
| | |
|
| | | return callFunc(curPlayer, addExp, expViewType)
|
| | |
|
| | | ## 获得多倍副本奖励
|
| | | # @param curPlayer 当前玩家
|
| | | # @param mapID |
| | | # @param lineID |
| | | # @param prizeExLV 额外奖励百分比等级
|
| | | # @return
|
| | | def OnGetMultiFBPrize(curPlayer, mapID, lineID, prizeExLV):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetMultiFBPrize"))
|
| | | |
| | | if callFunc == None:
|
| | | return
|
| | | |
| | | return callFunc(curPlayer, mapID, lineID, prizeExLV)
|
| | |
|
| | | ## 副本扫荡询问
|
| | | def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, cnt, isFinish, dataEx):
|
| | | def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, cnt, dataEx):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | |
|
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBSweepAsk"))
|
| | |
|
| | | # 没有额外条件判断默认返回True
|
| | | if callFunc == None:
|
| | | return True
|
| | | return
|
| | |
|
| | | return callFunc(curPlayer, mapID, lineID, cnt, isFinish, dataEx)
|
| | | return callFunc(curPlayer, mapID, lineID, cnt, dataEx)
|
| | |
|
| | | ## 副本扫荡结果
|
| | | def OnPlayerFBSweepResult(curPlayer, mapID, lineID, cnt, isFinish, dataEx):
|
| | | def OnPlayerFBSweepResult(curPlayer, mapID, lineID, cnt, dataEx):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | |
|
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBSweepResult"))
|
| | |
| | | if callFunc == None:
|
| | | return False
|
| | |
|
| | | return callFunc(curPlayer, mapID, lineID, cnt, isFinish, dataEx)
|
| | | return callFunc(curPlayer, mapID, lineID, cnt, dataEx)
|
| | |
|
| | | ## 开始公共CD副本扫荡
|
| | | def OnStartPubCDFBSweep(curPlayer, mapID, lineID, cnt, dataEx):
|
| | |
| | | callFunc(curPlayer, curNPC, tick)
|
| | | return
|
| | |
|
| | | ## 客户端发送结束副本
|
| | | def OnClientEndFB(curPlayer, mapID, lineID, dataList):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnClientEndFB"))
|
| | | |
| | | if callFunc == None:
|
| | | return False
|
| | | |
| | | return callFunc(curPlayer, mapID, lineID, dataList)
|
| | |
|
| | | ## 客户端发送开始副本
|
| | | def OnClientStartFB(curPlayer, tick):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnClientStartFB"))
|
| | | |
| | | if callFunc == None:
|
| | | return False
|
| | | |
| | | return callFunc(curPlayer, tick)
|
| | |
|
| | | ## 客户端进入自定义场景
|
| | | def OnEnterCustomScene(curPlayer, mapID, lineID):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnEnterCustomScene"))
|
| | | |
| | | if callFunc == None:
|
| | | return
|
| | | |
| | | return callFunc(curPlayer, mapID, lineID)
|
| | |
|
| | | ## 判断可否召唤木桩怪
|
| | | def OnCanSummonPriWoodPile(curPlayer, mapID, lineID, npcID, count):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCanSummonPriWoodPile"))
|
| | | |
| | | if callFunc == None:
|
| | | return True
|
| | | |
| | | return callFunc(curPlayer, mapID, lineID, npcID, count)
|
| | |
|
| | | ## 自定义场景副本击杀NPC
|
| | | def DoCustomScene_Player_KillNPC(curPlayer, curNPC, mapID, lineID):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoCustomScene_Player_KillNPC"))
|
| | | |
| | | if callFunc:
|
| | | callFunc(curPlayer, curNPC, mapID, lineID)
|
| | | |
| | | return
|
| | |
|
| | | ## 自定义场景采集OK,需自带是否允许采集的判断
|
| | | def OnCustomSceneCollectOK(curPlayer, mapID, lineID, npcID):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCustomSceneCollectOK"))
|
| | | |
| | | if callFunc:
|
| | | return callFunc(curPlayer, mapID, lineID, npcID)
|
| | | |
| | | return
|
| | |
|
| | | ## 进入跨服副本注册数据前逻辑
|
| | | ## @return: 是否可以注册前往跨服副本,次函数中可以写一些扣除消耗逻辑等
|
| | | def OnRegEnterCrossFB(curPlayer, mapID, lineID):
|
| | |
| | | if callFunc == None:
|
| | | return
|
| | | return callFunc()
|
| | |
|
| | | ## 是否需要做进入副本通用检查条件逻辑,默认需要检查
|
| | | def OnNeedCheckCanEnterFBComm(curPlayer, mapID, lineID):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnNeedCheckCanEnterFBComm"))
|
| | | |
| | | if callFunc == None:
|
| | | return True
|
| | | |
| | | return callFunc(curPlayer, mapID, lineID)
|
| | |
|
| | | def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagType, tagID, valueList):
|
| | | ## 回合战斗请求 - 地图验证
|
| | |
| | |
|
| | | return callFunc(curPlayer, mapID, funcLineID)
|
| | |
|
| | | def OnPlayerLineupAttackResult(curPlayer, atkObj, killObjIDList, useSkill, mapID, funcLineID):
|
| | | def OnPlayerLineupAttackResult(curPlayer, atkObj, killObjList, useSkill, mapID, funcLineID):
|
| | | ## 回合战斗主动发起的玩家阵容攻击结果额外处理 ,一般处理副本相关的掉落、奖励等
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | |
|
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerLineupAttackResult"))
|
| | |
|
| | | if callFunc:
|
| | | callFunc(curPlayer, atkObj, killObjIDList, useSkill, mapID, funcLineID)
|
| | | callFunc(curPlayer, atkObj, killObjList, useSkill, mapID, funcLineID)
|
| | |
|
| | | return
|
| | |
|