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