From 95d8352b83382782d6dfca638fc779ea7887eb96 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 31 一月 2019 09:57:38 +0800
Subject: [PATCH] 6105 【后端】【1.5.200】诛仙宝石开发(屏蔽满级获得经验日志输出)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCAI/AIType_186.py |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCAI/AIType_186.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCAI/AIType_186.py
index 0df17e2..a928ed2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCAI/AIType_186.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCAI/AIType_186.py
@@ -166,6 +166,10 @@
                 if isDead:
                     GameWorld.Log("    i=%s, 队员血量为0!, memPlayerID=%s" % (i, curTeamPlayer.GetPlayerID()))
                 continue
+            if not curTeamPlayer.GetVisible():
+                if isDead:
+                    GameWorld.Log("    i=%s, 队员不可见!, memPlayerID=%s" % (i, curTeamPlayer.GetPlayerID()))
+                continue
             if isDead:
                 GameWorld.Log("    i=%s, 队员坐标(%s, %s)! memPlayerID=%s" % (i, curTeamPlayer.GetPosX(), curTeamPlayer.GetPosY(), curTeamPlayer.GetPlayerID()))
             if npcControl.GetIsInRefreshPoint(curTeamPlayer.GetPosX(), curTeamPlayer.GetPosY(), refreshPoint):
@@ -227,7 +231,7 @@
             
             if curTeamPlayer.GetCopyMapID() == GameWorld.GetGameWorld().GetCopyMapID() \
                 and npcControl.GetIsInRefreshPoint(curTeamPlayer.GetPosX(), curTeamPlayer.GetPosY(), refreshPoint) \
-                and AttackCommon.CheckKillNPCByCnt(curTeamPlayer, curNPC, False):
+                and AttackCommon.CheckKillNPCByCnt(curTeamPlayer, curNPC, False) and curTeamPlayer.GetVisible():
                 __AddBossDropOwnerPlayerBuff(curTeamPlayer, tick, curNPC)
                 killerDict[curTeamPlayer.GetPlayerID()] = curTeamPlayer
                 if isDead:
@@ -256,7 +260,7 @@
                 continue
             
             # 归属仙盟 且 在boss区域内
-            if player.GetFamilyID() == ownerID and npcControl.GetIsInRefreshPoint(player.GetPosX(), player.GetPosY(), refreshPoint):
+            if player.GetFamilyID() == ownerID and npcControl.GetIsInRefreshPoint(player.GetPosX(), player.GetPosY(), refreshPoint) and player.GetVisible():
                 __AddBossDropOwnerPlayerBuff(player, tick, curNPC)
                 
             else:
@@ -381,6 +385,18 @@
         PlayerState.SetBossStateTick(atkObj, tick)
     return
 
+def OnCheckCanDie(atkObj, curNPC, skill, tick):
+    ## 检查NPC是否可死亡
+    dropOwnerType = NPCCommon.GetDropOwnerType(curNPC)
+    if dropOwnerType not in [ChConfig.DropOwnerType_MaxHurt]:
+        return True
+    tagObj = __RefreshDropOwner(curNPC, tick, 0)
+    if not atkObj or not tagObj:
+        GameObj.SetHP(curNPC, 1)
+        GameWorld.ErrLog("Boss当前状态下不可以死亡!npcID=%s" % curNPC.GetNPCID())
+        return False
+    return True
+
 ## NPC被玩家杀死
 def OnAttackDieByPlayer(curNPC, curPlayer, skill):
     tick = GameWorld.GetGameWorld().GetTick()

--
Gitblit v1.8.0