From e926fc46837c5fb26c537ecb15945a78e2f3423f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 17 十一月 2025 19:53:58 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(完善战斗相关公式参数;竞技增减伤属性、战力系数改为PVP增减伤;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuffs/BuffAtkType_1003.py |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuffs/BuffAtkType_1003.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuffs/BuffAtkType_1003.py
index 27225bb..ae49a9b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuffs/BuffAtkType_1003.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuffs/BuffAtkType_1003.py
@@ -16,13 +16,29 @@
 #-------------------------------------------------------------------------------
 
 import TurnSkill
+import IpyGameDataPY
+import GameWorld
 import ChConfig
 
 def CalcBuffValue(turnFight, attacker, defender, curSkill):
+    skillID = curSkill.GetSkillID()
     calcType = curSkill.GetCalcType()
     skillPer = curSkill.GetSkillPer()
     skillPer += TurnSkill.GetAddSkillPer(turnFight, attacker, defender, curSkill)
-    skillValue = curSkill.GetSkillValue()
+    #skillValue = curSkill.GetSkillValue()
     baseValue = TurnSkill.GetCalcBaseValue(calcType, attacker, defender, curSkill)
-    shieldValue = int(baseValue * skillPer / 10000.0) + skillValue
+    
+    relativeObj = TurnSkill.GetRelativeObj(turnFight, attacker)
+    aShieldPer = attacker.GetBatAttrValue(ChConfig.AttrID_ShieldPer) # 强化护盾
+    dShieldPerDef = relativeObj.GetBatAttrValue(ChConfig.AttrID_ShieldPerDef) # 弱化护盾
+    
+    angerOverflow = attacker.GetAngerOverflow()
+    
+    skillPer /= float(ChConfig.Def_MaxRateValue)
+    aShieldPer /= float(ChConfig.Def_MaxRateValue)
+    dShieldPerDef /= float(ChConfig.Def_MaxRateValue)
+    
+    shieldValue = eval(IpyGameDataPY.GetFuncCompileCfg("ShieldFormula", 1))
+    GameWorld.DebugLog("计算护盾值(%s):skillID=%s,calcType=%s,baseValue=%s,skillPer=%s,aShieldPer=%s,dShieldPerDef=%s,angerOverflow=%s" 
+                       % (shieldValue, skillID, calcType, baseValue, skillPer, aShieldPer, dShieldPerDef, angerOverflow))
     return [shieldValue % ChConfig.Def_PerPointValue, shieldValue / ChConfig.Def_PerPointValue]

--
Gitblit v1.8.0