From 12e548e57be573f0b963eefb1865169e9d7e67cc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 13 一月 2020 18:01:32 +0800
Subject: [PATCH] 4653 【主干】boss之家内前往协助boss之家其他层boss会退出协助状态
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py | 45 ++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 40 insertions(+), 5 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py
index d8576ba..a342279 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py
@@ -3,9 +3,7 @@
#
##@package
#
-# @todo: 灼烧(流派专用,额外公式), 持续过程中可能会被改变伤害或者持续时长,无法用次数控制,无层级概念
-# 若同类型buff存在不管等级高低,只给原buff充能只改变值或时间
-# 不同释放者可共存多个灼烧
+# @todo: 灼烧(流派专用,额外公式)
# @author: Alee
# @date 2019-4-28 下午04:12:17
# @version 1.0
@@ -22,6 +20,8 @@
import PlayerControl
import PassiveBuffEffMng
import GameObj
+import BuffSkill
+import SkillShell
#---------------------------------------------------------------------
#全局变量
#---------------------------------------------------------------------
@@ -36,21 +36,36 @@
# @return None
# @remarks 函数详细说明.
def ProcessBuff(defender, curBuff, curEffect, processBuffTick, tick):
+ if curBuff.GetValue2() == 0:
+ return
+
#单次伤害
singleDecHP = curBuff.GetValue()
buffOwner = SkillCommon.GetBuffOwner(curBuff)
curBuffSkillID = curBuff.GetSkill().GetSkillTypeID()
- SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
+ # SkillLostHP前调用 死亡或者其他情况会取消curBuff
+ curBuff.SetValue2(max(curBuff.GetValue2() - 1, 0))
+ SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Burn)
+ if buffOwner and GameObj.GetHP(buffOwner) > 0:
+ # 此处暂无法用被动效果实现
+ buffManager = defender.GetProcessDeBuffState()
+ burnToHPEffect, plusValue, skillID = BuffSkill.FindBuffEffectByOwnertID(buffManager, ChConfig.Def_Skill_Effect_BurnToAddHP,
+ buffOwner.GetID(), buffOwner.GetGameObjType())
+ if burnToHPEffect:
+ addHP = singleDecHP*burnToHPEffect.GetEffectValue(0)/ChConfig.Def_MaxRateValue
+ SkillCommon.SkillAddHP(buffOwner, curBuffSkillID, addHP)
return
-# 灼烧的特征为延长buff时间,重算伤害
+
def CalcBuffValue(attacker, defender, curSkill, changeBuffValueDict):
curEffect = curSkill.GetEffect(0)
skillPer = curEffect.GetEffectValue(0)
skillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(attacker, defender, curSkill, ChConfig.TriggerType_BurnPer)
+ skillPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(attacker, defender, curSkill, ChConfig.TriggerType_BurnPer)
+
skillEnhance = curEffect.GetEffectValue(1) + PlayerControl.GetBurnValue(attacker)
skillPer = skillPer*1.0/ChConfig.Def_MaxRateValue
# 灼烧特殊公式
@@ -60,11 +75,31 @@
return [hurtValue]
+
+# 次数(配合效果ID9999的间隔)
+def DoAddBuffOver(curObj, curBuff, curEffect, tick, buffOwner):
+ if not buffOwner:
+ return
+ buffTick = SkillShell.GetProcessBuffTick(curBuff.GetSkill(), buffOwner)
+
+ curBuff.SetValue2(curBuff.GetRemainTime()/buffTick)
+ return
+
+
def OnBuffDisappear(defender, curSkill, curBuff, curEffect, tick):
#已经死亡不触发
if GameObj.GetHP(defender) <= 0:
return
+ count = curBuff.GetValue2()
+ #无剩余
+ if count > 0:
+ SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), SkillCommon.GetBuffOwner(curBuff),
+ curBuff.GetValue()*count, tick, hurtType=ChConfig.Def_HurtType_Burn)
+
+ if GameObj.GetHP(defender) <= 0:
+ return
+
# 在防御者身上同时取消同一个释放者的相关buff
defender.SetDict(ChConfig.Def_PlayerKey_BurnOwnerID, curBuff.GetOwnerID())
--
Gitblit v1.8.0