From e25e81a0a62baf5b6df6f9599cf791ef7085baa8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 08 十一月 2023 14:53:39 +0800
Subject: [PATCH] 0312 【主干】【BT0.1】增加持续回血 按目标最大血量(效果1307)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1307.py |   76 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1307.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1307.py
new file mode 100644
index 0000000..a188862
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1307.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+
+##@package BuffProcess_1307
+# @todo: 持继回血触发的buff逻辑实现 按目标最大生命回血
+#
+# @author Alee
+# @date 2011-01-18 11:00
+# @version 1.2
+#
+#---------------------------------------------------------------------
+"""Version = 2013-10-31 14:45"""
+
+#导入
+import SkillCommon
+import GameWorld
+import ChConfig
+import GameObj
+#import PassiveBuffEffMng
+#import SkillShell
+#---------------------------------------------------------------------
+#全局变量
+#---------------------------------------------------------------------
+#逻辑实现
+## 持续性Buff处理 
+#  @param defender 承受者
+#  @param curBuff 当前Buff
+#  @param curEffect Buff效果
+#  @param tick 当前时间
+#  @return None
+#  @remarks 持续性Buff处理 
+def ProcessBuff(defender, curBuff, curEffect, processBuffTick, tick):
+    if curBuff.GetValue1() == 0:
+        return
+    
+    curBuffSkillID = curBuff.GetSkill().GetSkillTypeID()
+    singleAddHP = curBuff.GetValue()
+    
+    curBuff.SetValue1(max(curBuff.GetValue1() - 1, 0))
+    SkillCommon.SkillAddHP(defender, curBuffSkillID, singleAddHP)
+    return
+
+
+# 消失前如有未执行次数则补上
+#  @param defender 承受者
+def OnBuffDisappear(defender, curSkill, curBuff, curEffect, tick):
+    count = curBuff.GetValue1()
+    #无剩余
+    if count <= 0:
+        return
+    
+    #已经死亡不触发
+    if GameObj.GetHP(defender) <= 0:
+        return
+    SkillCommon.SkillAddHP(defender, curSkill.GetSkillTypeID(), curBuff.GetValue()*count)
+    return
+
+
+
+##持续治疗Buff,根据攻击者最大血量计算
+# @param attacker 攻击者实例
+# @param curSkill 技能实例
+# @param curEffect 当前技能效果1
+# @return 总值
+def CalcBuffValue(attacker, defender, curSkill, changeBuffValueDict):
+    curEffect = curSkill.GetEffect(0)
+    # 被动增强
+#    addTime = PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(attacker, None, curSkill, ChConfig.TriggerType_BuffTime)
+#    buffTick = SkillShell.GetProcessBuffTick(curSkill, attacker)
+#
+#    count = int(addTime/buffTick + curEffect.GetEffectValue(2))
+
+    count = curEffect.GetEffectValue(2)
+    return [SkillCommon.GetCureHP(attacker, defender, curSkill, ChConfig.Def_Cure_TagMaxHP),
+            count]
+

--
Gitblit v1.8.0