| | |
| | |
|
| | |
|
| | | FBPlayerDict_CurStep = 'FBPlayerDict_CurStep' # 当前阶段
|
| | | FBPlayerDict_StepState = 'FBPlayerDict_StepState' # 阶段状态
|
| | | # 副本通用配置
|
| | | (
|
| | | Def_PrepareTime, # 准备时间,秒
|
| | |
| | | Def_LeaveTime, # 退出时间, 秒
|
| | | Def_CollectTime, # 采集时间, 秒
|
| | | Def_RefreshBossMark, # 刷怪标识点
|
| | | ) = range(5)
|
| | | Def_RefreshBossMark1, # 刷怪标识点
|
| | | ) = range(6)
|
| | |
|
| | |
|
| | | #当前副本地图的状态
|
| | |
| | |
|
| | | if fbStep < FB_Step_Prepare:
|
| | | FBCommon.SetFBStep(FB_Step_Prepare, tick)
|
| | | |
| | | boxIDList = FBCommon.GetFBLineRefreshNPC(mapID, lineID)[1:]
|
| | | npcCnt = len(boxIDList)
|
| | | NPCCustomRefresh.SetNPCRefresh(__GetFBTimeCfg()[Def_RefreshBossMark1], [[npcID,1] for npcID in boxIDList], npcCnt, npcCnt)
|
| | | FBCommon.SyncDynamicBarrierState(IpyGameDataPY.GetFuncEvalCfg('HazyTreasure'), 1, curPlayer) # 准备期间有动态障碍点
|
| | | if fbStep <= FB_Step_Prepare:
|
| | | notify_tick = __GetFBTimeCfg(lineID)[Def_PrepareTime] * 1000 - (tick - GameWorld.GetGameFB().GetFBStepTick())
|
| | | curPlayer.Sync_TimeTick(IPY_GameWorld.tttWaitStart, 0, max(notify_tick, 0), True)
|
| | |
| | | gameFB = GameWorld.GetGameFB()
|
| | |
|
| | | curStep = gameFB.GetGameFBDictByKey(FBPlayerDict_CurStep) + 1
|
| | | helpDict = {FBCommon.Help_step:curStep}
|
| | | helpDict = {FBCommon.Help_step:curStep, FBCommon.Help_npcTotal:gameFB.GetGameFBDictByKey(FBPlayerDict_StepState)}
|
| | | GameWorld.DebugLog("DoFBHelp %s" % str(helpDict))
|
| | | FBCommon.Notify_FBHelp(curPlayer, helpDict)
|
| | | return
|
| | |
| | | def DoFB_Player_KillNPC(curPlayer, curNPC, tick):
|
| | | mapID = GameWorld.GetMap().GetMapID()
|
| | | lineID = FBCommon.GetFBPropertyMark()
|
| | | bossID, boxID = FBCommon.GetFBLineRefreshNPC(mapID, lineID)
|
| | | bossID = FBCommon.GetFBLineRefreshNPC(mapID, lineID)[0]
|
| | | if bossID != curNPC.GetNPCID():
|
| | | return
|
| | | #刷宝箱进入采集阶段
|
| | | GameWorld.GetGameFB().SetGameFBDict(FBPlayerDict_CurStep, 1)
|
| | | |
| | | DoFBHelp(curPlayer, tick)
|
| | | FBCommon.SyncDynamicBarrierState(IpyGameDataPY.GetFuncEvalCfg('HazyTreasure'), 0, curPlayer)
|
| | | #特效NPC消失
|
| | | FBCommon.ClearFBNPCEx(FBCommon.GetFBLineRefreshNPC(mapID, lineID)[2:])
|
| | | |
| | | #FBCommon.SetFBStep(FB_Step_Collect, tick)
|
| | | NPCCustomRefresh.SetNPCRefresh(__GetFBTimeCfg()[Def_RefreshBossMark], [boxID])
|
| | | #NPCCustomRefresh.SetNPCRefresh(__GetFBTimeCfg()[Def_RefreshBossMark], [boxID])
|
| | | return
|
| | |
|
| | | ## 检查是否可攻击, 主判定不可攻击的情况,其他逻辑由外层决定
|
| | |
| | | # @return 无意义
|
| | | # @remarks
|
| | | def OnCanCollect(curPlayer, curNPC, tick):
|
| | | return True
|
| | | gameFB = GameWorld.GetGameFB()
|
| | | curStep = gameFB.GetGameFBDictByKey(FBPlayerDict_CurStep)
|
| | | return curStep == 1
|
| | |
|
| | |
|
| | | ##副本中,采集物需要Loading时间.
|
| | |
| | |
|
| | | ChNPC.OnCollectEnd(curPlayer, curNPC)
|
| | | GameWorld.DebugLog(' 采集成功!', playerID)
|
| | | |
| | | #DoFBHelp(curPlayer, 0)
|
| | | GameWorld.GetGameFB().SetGameFBDict(FBPlayerDict_StepState, 1)
|
| | | DoFBHelp(curPlayer, 0)
|
| | | #掉落给奖励
|
| | | DoFairyTreasureOver(curPlayer, tick, dropPosX, dropPosY)
|
| | |
|