From 92f730f4bac31c1872886892310701c6809d002a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 20 一月 2024 16:44:27 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(NPC攻、防、生命字段调整到NPC表扩展;增加按目标生命百分比判断高于或低于时被动增加最终伤害百分比数值;增加首次生命低于x触发被动)

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

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
index 2f41f42..44d6085 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
@@ -45,16 +45,29 @@
                 #GameWorld.DebugLog("不能设置按时间掉血的怪物血量! id=%s,npciD=%s,value=%s,isByTime=%s" % (gameObj.GetID(), gameObj.GetNPCID(), value, isByTime))
                 return
         gameObj.SetHP(value % ShareDefine.Def_PerPointValue, value / ShareDefine.Def_PerPointValue, isNotify)
+        
+    # 更新历史最低血量
+    if value < GetLowestHP(gameObj):
+        SetLowestHP(gameObj, value)
     return
 
-def SetHPFull(gameObj):
+def SetHPFull(gameObj, resetLowestHP=False):
     SetHP(gameObj, GetMaxHP(gameObj))
+    if resetLowestHP:
+        SetLowestHP(gameObj, GetHP(gameObj))
     return
 
 def SetBaseMaxHP(gameObj, value):
     gameObj.SetBaseMaxHP(value % ShareDefine.Def_PerPointValue, value / ShareDefine.Def_PerPointValue)
     return
-    
+
+def SetLowestHP(gameObj, value):
+    gameObj.SetDict(ChConfig.Def_Obj_Dict_TurnLowestHP, value % ShareDefine.Def_PerPointValue)
+    gameObj.SetDict(ChConfig.Def_Obj_Dict_TurnLowestHPEx, value / ShareDefine.Def_PerPointValue)
+    return
+def GetLowestHP(gameObj):
+    return gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnLowestHP) + gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnLowestHPEx) * ShareDefine.Def_PerPointValue
+
 def GetAngryValue(curAngry):
     return curAngry.GetAngryValue() + curAngry.GetAngryValueEx() * ShareDefine.Def_PerPointValue
 def SetAngryValue(curAngry, value):

--
Gitblit v1.8.0