From b965081066ea579c45c73f08cd9cd61bc157ac9f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 09 五月 2019 11:15:45 +0800
Subject: [PATCH] 6459 【后端】【2.0】缥缈仙域开发单(防范跨服妖王关闭线路时导致的报错)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
index eb752ad..fcc507e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
@@ -15,6 +15,7 @@
 import ShareDefine
 import ChConfig
 import IPY_GameWorld
+import IpyGameDataPY
 
 # 关于血量的函数这里只包装最简单的超DWORD处理
 
@@ -43,10 +44,15 @@
         return gameObj.GetHPEx()*ShareDefine.Def_PerPointValue + gameObj.GetHP()
 
 
-def SetHP(gameObj, value, isNotify=True):
+def SetHP(gameObj, value, isNotify=True, isByTime=False):
     if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
         gameObj.SetHP(value, isNotify)
     else:
+        if gameObj.GetGameObjType() == IPY_GameWorld.gotNPC:
+            npcID = gameObj.GetNPCID()
+            if IpyGameDataPY.GetIpyGameDataNotLog("NPCTimeLostHP", npcID) and not isByTime and value not in [GetMaxHP(gameObj), 0]:
+                #GameWorld.DebugLog("不能设置按时间掉血的怪物血量! id=%s,npciD=%s,value=%s,isByTime=%s" % (gameObj.GetID(), gameObj.GetNPCID(), value, isByTime))
+                return
         gameObj.SetHPEx(value/ShareDefine.Def_PerPointValue)
         gameObj.SetHP(value%ShareDefine.Def_PerPointValue)
         

--
Gitblit v1.8.0