From 0dcd7650a642a7b26fe65e14cc5f5b3947757e30 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 16 九月 2025 16:59:10 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(王异技能;支持被动增加暴击率;支持被动变更伤害类型;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py index fc67868..e3dda5b 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py @@ -1011,13 +1011,19 @@ def CalcHurtHP(turnFight, atkObj, defObj, curSkill, atkSkillValue, atkSkillPer, **kwargs): '''计算伤害,默认按攻击计算 ''' + + skillID = curSkill.GetSkillID() pmType = GetPMType(atkObj, curSkill) ignoreDef = IsIgnoreDef(curSkill) + changeHurtType = TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_ChangeHurtType, curSkill) + if changeHurtType == 1: + ignoreDef = True + GameWorld.DebugLog("强制变更本次伤害为无视防御! skillID=%s" % skillID) + atkID = atkObj.GetID() defID = defObj.GetID() - skillID = curSkill.GetSkillID() isTurnNormalSkill = SkillCommon.isTurnNormalSkill(curSkill) isAngerSkill = SkillCommon.isAngerSkill(curSkill) isDot = ("damageoftime" in kwargs) @@ -1051,7 +1057,7 @@ isSuperHit, isParry, isStun = False, False, False aSuperDamPer, dSuperDamPerDef = 0, 0 if not isDot: - isSuperHit = CanSuperHit(atkObj, defObj) # 是否暴击 + isSuperHit = CanSuperHit(turnFight, atkObj, defObj, curSkill) # 是否暴击 isParry = (isTurnNormalSkill and CanParry(turnFight, atkObj, defObj, curSkill)) # 是否格挡,仅针对普攻 isStun = CanStun(turnFight, atkObj, defObj, curSkill) # 是否击晕 @@ -1140,8 +1146,9 @@ hurtValue = max(1, int(hurtValue)) # 负值、保底防范 return hurtValue, hurtTypes -def CanSuperHit(atkObj, defObj): +def CanSuperHit(turnFight, atkObj, defObj, curSkill): aSuperHitRate = atkObj.GetBatAttrValue(ChConfig.AttrID_SuperHitRate) + aSuperHitRate += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.AttrID_SuperHitRate, curSkill) dSuperHitRateDef = defObj.GetBatAttrValue(ChConfig.AttrID_SuperHitRateDef) happenRate = eval(IpyGameDataPY.GetFuncCompileCfg("SuperHitCfg", 1)) if GameWorld.CanHappen(happenRate): -- Gitblit v1.8.0