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