From 9608b7eef80ecef4f92b7fa77b17cdc0d9b89635 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期六, 24 十一月 2018 15:08:07 +0800
Subject: [PATCH] 4715 冰晶矿脉修改(退出清BUFF,特殊怪通关副本)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py |   39 ++++++++++++++++++++++++++++-----------
 1 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
index 32dd8df..d46382d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
@@ -31,6 +31,7 @@
 import EventReport
 import ChPyNetSendPack
 import NetPackCommon
+import BuffSkill
 
 import random
 import datetime
@@ -218,6 +219,7 @@
 # @param tick 时间戳
 # @return 无意义
 def DoExitFB(curPlayer, tick):
+    
     return
 
 ##玩家主动离开副本.
@@ -227,6 +229,12 @@
 def DoPlayerLeaveFB(curPlayer, tick):
     return
 
+##玩家切换地图
+def DoPlayerChangeMapLogic(curPlayer):
+    tick = GameWorld.GetGameWorld().GetTick()
+    for buffID in IpyGameDataPY.GetFuncEvalCfg('IceLodeSpecial', 2):
+        BuffSkill.DelBuffBySkillID(curPlayer, buffID, tick)
+    return
 
 def OnPickUpItem(curPlayer, curItem, tick):
     return
@@ -448,12 +456,7 @@
         return False
     return True
 
-## 执行副本杀怪逻辑
-#  @param curPlayer 杀怪的人
-#  @param curNPC 被杀的怪
-#  @param tick 当前时间
-#  @return None
-def DoFB_Player_KillNPC(curPlayer, curNPC, tick):
+def __OnKillNPC(attacker, curNPC, tick):
     gameFB = GameWorld.GetGameFB()
     npcid = curNPC.GetNPCID()
     npcCfg = GetIceLodeNPCCfg()
@@ -468,8 +471,22 @@
     remainNPCCnt = max(0, gameFB.GetGameFBDictByKey(FBPlayerDict_RemainNPCCnt) - 1)
     gameFB.SetGameFBDict(FBPlayerDict_RemainNPCCnt, remainNPCCnt)
     
-    if remainNPCCnt <=0:
+    if remainNPCCnt <=0 or npcid in IpyGameDataPY.GetFuncEvalCfg('IceLodeSpecial'):
         __DoIceLodeOver(True)
+    return
+
+def DoFB_Npc_KillNPC(attacker, curNPC, tick):
+    __OnKillNPC(attacker, curNPC, tick)
+    return
+
+## 执行副本杀怪逻辑
+#  @param curPlayer 杀怪的人
+#  @param curNPC 被杀的怪
+#  @param tick 当前时间
+#  @return None
+def DoFB_Player_KillNPC(curPlayer, curNPC, tick):
+    __OnKillNPC(curPlayer, curNPC, tick)
+    
     
 #    addPoint = GetPointByNPCID(npcid)
 #    if not addPoint:
@@ -562,10 +579,10 @@
     FBCommon.Sync_Player_TimeTick(IPY_GameWorld.tttLeaveMap, FBCommon.GetFBLineStepTime(mapID)[Def_LeaveTime] * 1000)
     
     # 清怪,关闭刷怪
-    FBCommon.ClearFBNPC()
-    npcCfg = GetIceLodeNPCCfg()
-    for npcInfo in npcCfg:
-        NPCCustomRefresh.CloseNPCRefresh(npcInfo[Def_RefreshMark], tick)
+#    FBCommon.ClearFBNPC()
+#    npcCfg = GetIceLodeNPCCfg()
+#    for npcInfo in npcCfg:
+#        NPCCustomRefresh.CloseNPCRefresh(npcInfo[Def_RefreshMark], tick)
     
     return
 

--
Gitblit v1.8.0