| | |
| | | import IpyGameDataPY
|
| | | import PlayerSuccess
|
| | | import ReadChConfig
|
| | | import PlayerAssist
|
| | | import ShareDefine
|
| | | import PyGameData
|
| | | import FBCommon
|
| | |
| | | callFunc(curPlayer, rebornType, tick)
|
| | |
|
| | | return
|
| | | #---------------------------------------------------------------------
|
| | | ## 获得副本当前信息
|
| | | # @param curPlayer 当前玩家
|
| | | # @param tick 当前时间
|
| | | # @return None
|
| | | # @remarks 函数详细说明.
|
| | | def DoGetFBState(curPlayer, tick):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoGetFBState"))
|
| | | |
| | | if callFunc:
|
| | | #GameWorld.Log("副本逻辑不可使用 GameLogic_%d"%(mapID))
|
| | | return callFunc(curPlayer, tick)
|
| | | |
| | | return
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | ## 获得副本帮助
|
| | | # @param curPlayer 当前玩家
|
| | | # @param tick 当前时间
|
| | |
| | | #成长NPC所需数据初始化
|
| | | InitFBNPCStrengthenData(curPlayer, gameMap)
|
| | |
|
| | | PlayerAssist.OnPlayerEnterAssistFB(curPlayer, gameMapID, reqFuncLineID)
|
| | | DoEnterFB(curPlayer, tick)
|
| | |
|
| | | RecordFirstEnterMap(curPlayer, gameMapID)
|
| | |
| | | #扣费一般都是在进入副本逻辑里处理,免费只有一次性的,所以放在后面进行重置,防止一直免费
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFBFree):
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_EnterFBFree, 0)
|
| | | 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):
|
| | |
| | | return callFunc(curPlayer)
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ## 玩家主动离开副本
|
| | | # @param curPlayer 当前玩家
|
| | | # @param tick 当前时间
|
| | | # @return None or False
|
| | | # @remarks 函数详细说明.
|
| | | def OnExitEvent(curPlayer, tick):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnExitEvent"))
|
| | | |
| | | if callFunc == None:
|
| | | #GameWorld.Log("副本逻辑不可使用 GameLogic_%d"%(mapID))
|
| | | return False
|
| | | |
| | | callFunc(curPlayer, tick)
|
| | | return
|
| | | #---------------------------------------------------------------------
|
| | | ## 玩家刚登陆时,要判断玩家是否还属于这个副本
|
| | | # @param curPlayer 当前玩家
|
| | | # @param tick 当前时间
|
| | |
| | |
|
| | | return callFunc(curPlayer, mapID, lineID, cnt, isFinish, dataEx)
|
| | |
|
| | | ## 副本助战扫荡结果
|
| | | def OnPlayerFBHelpBattleSweepResult(curPlayer, mapID, lineID, helpBattlePlayerDict):
|
| | | 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)
|
| | |
|
| | | ## 开始公共CD副本扫荡
|
| | | def OnStartPubCDFBSweep(curPlayer, mapID, lineID, cnt, dataEx):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
| | |
| | |
|
| | | return
|
| | |
|
| | | ## NPC攻击成功后FB处理(说明:进入这个函数的时候,怪物已经死亡,掉落经验等都处理过了)
|
| | | # @param curNPC 攻击方
|
| | | # @param target 防守方
|
| | | # @param tick 当前时间
|
| | | # @return None
|
| | | # @remarks 函数详细说明.
|
| | | def DoOverNPCAttackSuccess(curNPC, target, tick):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoOverNPCAttackSuccess"))
|
| | | |
| | | if callFunc:
|
| | | callFunc(curNPC, target, tick)
|
| | | |
| | | return
|
| | |
|
| | | ## 玩家死亡
|
| | | # @param curPlayer:死亡的玩家
|
| | | # @return None
|
| | |
| | | return ''
|
| | |
|
| | | return callFunc(curPlayer, lineId)
|
| | | #---------------------------------------------------------------------
|
| | | ##副本使用特殊功能(技能)
|
| | | # @param curPlayer 玩家实例
|
| | | # @param useType 使用类型
|
| | | # @param useState 使用状态
|
| | | # @return 无意义
|
| | | # @remarks 副本使用特殊技能
|
| | | def UseFBSpecilSkill(curPlayer, useType, useState, tick):
|
| | | do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
| | | |
| | | callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "UseFBSpecilSkill"))
|
| | | |
| | | if callFunc == None:
|
| | | return
|
| | | |
| | | return callFunc(curPlayer, useType, useState, tick)
|
| | |
|
| | | |
| | | ##副本有NPC重生
|
| | | # @param curNPC:
|
| | | # @param tick:tick
|
| | |
| | |
|
| | | return callFunc(curPlayer, mapID, funcLineID, tagType, tagID, valueList)
|
| | |
|
| | | def OnPlayerLineupAttackResult(curPlayer, atkObj, killObjIDList, 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)
|
| | | |
| | | return
|
| | |
|
| | | def OnTurnFightOver(curPlayer, mapID, funcLineID, tagType, tagID, valueList, fightRet):
|
| | | ## 回合战斗结束
|
| | | # @return: 是否需要同步GameServer, 奖励列表
|