From 9aec240e848ba4bb6b473707ad8f48aee5180141 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期一, 29 四月 2019 10:06:52 +0800 Subject: [PATCH] 6632 子 【开发】增加新的符印属性 / 【后端】增加新的符印属性 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 61 ++++++++++++++---------------- 1 files changed, 28 insertions(+), 33 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py index 87b5128..bc90b1e 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py @@ -1222,18 +1222,15 @@ return -## 技能伤血 -# @param curObj 当前对象 -# @param skillTypeID 技能类型ID -# @param buffOwner buff拥有者 -# @param lostValue 丢失值 -# @param tick 当前时间 -# @param view 是否广播 -# @param reduce 是否扣血 -# @return None -# @remarks 函数详细说明. -def SkillLostHP(curObj, skillTypeID, buffOwner, lostValue, tick, view=True, reduceHP=True, - isDoAttackResult=True, hurtType=ChConfig.Def_HurtType_Normal): +## 直接扣血不走公式 +# view 是否广播客户端飘血 +# isDoAttackResult 是否立即处理结果,为False必须外层有处理 +# hurtType 飘血类型 +# skillAffect 默认True 会被各种技能BUFF盾等影响伤血数值 +# False代表一些特殊处理纯固定伤害飘字(如采集固定掉1点血) +def SkillLostHP(curObj, skillTypeID, buffOwner, lostValue, tick, view=True, + isDoAttackResult=True, hurtType=ChConfig.Def_HurtType_Normal, + skillAffect=True): if lostValue <= 0: GameWorld.Log('###技能伤害血量异常,数值错误 = %s,技能类型ID = %s' % (lostValue, skillTypeID)) return @@ -1257,28 +1254,26 @@ # 没有血量不能再触发 return - if reduceHP : - lostValue = AttackCommon.CalcAtkProDef(buffOwner, curObj, lostValue, curSkill, tick) - # 血盾 - lostValue = AttackCommon.CalcBloodShield(buffOwner, curObj, lostValue) - - #剩余血量 - remainHP = max(curObjHP_BeforeAttack - lostValue , 0) - - #NPC处理 - if curObjType == IPY_GameWorld.gotNPC: - #宠物特殊处理 - if curObj.GetGameNPCObjType() == IPY_GameWorld.gnotPet: - PetControl.SetPetHP(curObj, remainHP) - else: - GameObj.SetHP(curObj, remainHP) - if not view : # 已广播的不重复 - curObj.Notify_HPEx() - - #其他对象逻辑处理 + if skillAffect: + lostValue = AttackCommon.CalcHurtHPWithBuff(buffOwner, curObj, lostValue, curSkill, tick) + + #剩余血量 + remainHP = max(curObjHP_BeforeAttack - lostValue , 0) + + #NPC处理 + if curObjType == IPY_GameWorld.gotNPC: + #宠物特殊处理 + if curObj.GetGameNPCObjType() == IPY_GameWorld.gnotPet: + PetControl.SetPetHP(curObj, remainHP) else: - # 已广播的不重复 - GameObj.SetHP(curObj, remainHP, not view) + GameObj.SetHP(curObj, remainHP) + if not view : # 已广播的不重复 + curObj.Notify_HPEx() + + #其他对象逻辑处理 + else: + # 已广播的不重复 + GameObj.SetHP(curObj, remainHP, not view) AttackCommon.WriteHurtLog(buffOwner, curObj, curSkill, lostValue, hurtType, "持续掉血") -- Gitblit v1.8.0