From 38a5de3bda3fef86c848e263bc80f7ec9308de00 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 19 四月 2019 20:24:42 +0800
Subject: [PATCH] 6516 【后端】【2.0】战斗公式增加系数 获取dFinalHurtReducePer值

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FairyTreasure.py |   33 +++++++++++++++++++++++----------
 1 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FairyTreasure.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FairyTreasure.py
index a18207e..a826907 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FairyTreasure.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FairyTreasure.py
@@ -30,9 +30,11 @@
 import ChPlayer
 import EventReport
 import ChNPC
+import ItemCommon
 
 
 FBPlayerDict_CurStep = 'FBPlayerDict_CurStep'   # 当前阶段
+FBPlayerDict_StepState = 'FBPlayerDict_StepState'   # 阶段状态
 # 副本通用配置
 (
 Def_PrepareTime, # 准备时间,秒
@@ -40,7 +42,8 @@
 Def_LeaveTime, # 退出时间, 秒
 Def_CollectTime, # 采集时间, 秒
 Def_RefreshBossMark, # 刷怪标识点
-) = range(5)
+Def_RefreshBossMark1, # 刷怪标识点
+) = range(6)
 
 
 #当前副本地图的状态
@@ -118,7 +121,10 @@
 
     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)
@@ -167,7 +173,7 @@
     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
@@ -262,14 +268,19 @@
 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
 
 ## 检查是否可攻击, 主判定不可攻击的情况,其他逻辑由外层决定
@@ -290,7 +301,9 @@
 # @return 无意义
 # @remarks
 def OnCanCollect(curPlayer, curNPC, tick):
-    return True
+    gameFB = GameWorld.GetGameFB()
+    curStep = gameFB.GetGameFBDictByKey(FBPlayerDict_CurStep)
+    return curStep == 1
 
 
 ##副本中,采集物需要Loading时间.
@@ -322,8 +335,8 @@
     
     ChNPC.OnCollectEnd(curPlayer, curNPC)
     GameWorld.DebugLog('    采集成功!', playerID)
-    
-    #DoFBHelp(curPlayer, 0)
+    GameWorld.GetGameFB().SetGameFBDict(FBPlayerDict_StepState, 1)
+    DoFBHelp(curPlayer, 0)
     #掉落给奖励
     DoFairyTreasureOver(curPlayer, tick, dropPosX, dropPosY)
     
@@ -350,7 +363,7 @@
                 itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
                 if not itemData:
                     return
-                if curAlchemyLV < itemData.GetLV() - 1:
+                if curAlchemyLV < ItemCommon.GetItemClassLV(itemData) - 1:
                     #丹炉等级不足
                     continue
     
@@ -359,7 +372,7 @@
                 continue
             randomitem = GameWorld.GetResultByWeightList(newItemInfoList)
             giveItemList.append(randomitem)
-            for _ in randomitem[1]:
+            for _ in xrange(randomitem[1]):
                 dropItemList.append([randomitem[0],1,randomitem[2]])
         
     if giveItemList:

--
Gitblit v1.8.0