From ce3255b65c0ab6fb2a93e416d39d547632287b51 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 16 四月 2024 17:08:38 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(增加技能被动效果5015 5016 5017) 1. 增加技能被动效果ID 5015 - 被攻击触发,附加负面状态判断 2. 增加技能被动效果ID 5016 - 灵宠攻击后触发,附加目标负面状态判断 3. 增加技能被动效果ID 5017 - 攻击时提升攻击力,附加当前血量判

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py             |    4 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py                     |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py              |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py              |   20 ++++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py                           |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py             |    4 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py                      |    3 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py              |    4 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py                              |   13 ++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py             |    6 -
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5015.py          |   26 ++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py                            |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5016.py          |   26 ++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5017.py          |   39 +++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py                 |   11 ++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py              |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py              |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                                     |    3 
 19 files changed, 143 insertions(+), 30 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index 27eb084..65105ee 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -2068,7 +2068,7 @@
         return 0, ChConfig.Def_HurtType_Miss
     
     multiValue = 0 # 伤害倍值
-    summonAtkPer = 1    # 召唤继承提高基础攻击力,取表
+    atkPer = ChConfig.Def_MaxRateValue    # 提高基础攻击力
     summonAtkObj = atkwargs.get('orgAtkObj', None) if atkwargs.get('orgAtkObj', None) else atkObj
     if summonAtkObj.GetGameObjType() == IPY_GameWorld.gotNPC and summonAtkObj.GetGameNPCObjType() == IPY_GameWorld.gnotSummon:
         summonAtkPerValue = summonAtkObj.GetDictByKey(ChConfig.Def_GameObjKey_InheritOwner)
@@ -2078,8 +2078,8 @@
             if not ownerAtkObj:
                 return 0, ChConfig.Def_HurtType_Miss
             
-            summonAtkPer = summonAtkPerValue*1.0/ChConfig.Def_MaxRateValue
-            #GameWorld.DebugLog("召唤兽取主人---------%s-%s-%s-%s"%(ownerAtkObj.GetID(), atkSkillPer, atkSkillValue, summonAtkPer))
+            atkPer = summonAtkPerValue
+            #GameWorld.DebugLog("召唤兽取主人---------%s-%s-%s-%s"%(ownerAtkObj.GetID(), atkSkillPer, atkSkillValue, summonAtkPerValue))
         
     atkObjType = atkObj.GetGameObjType()
     defObjType = defObj.GetGameObjType()
@@ -2277,16 +2277,22 @@
     rand = random.random()                #种子数 0~1
     
     #------- 攻击方
-    aMinAtk = atkObj.GetMinAtk() * summonAtkPer        # 攻击方最小攻击
-    aMaxAtk = atkObj.GetMaxAtk() * summonAtkPer       # 攻击方最大攻击
+    aMinAtk = atkObj.GetMinAtk()        # 攻击方最小攻击
+    aMaxAtk = atkObj.GetMaxAtk()       # 攻击方最大攻击
     if petNPCOwner:
         petNPCOwner.SetDict("useSkillPetID", atkObj.GetID())
         #主人攻击力可能会变化,所以在这里用到时直接取
-        aMinAtk = petNPCOwner.GetMinAtk() * summonAtkPer        # 攻击方最小攻击
-        aMaxAtk = petNPCOwner.GetMaxAtk() * summonAtkPer       # 攻击方最大攻击
+        aMinAtk = petNPCOwner.GetMinAtk()        # 攻击方最小攻击
+        aMaxAtk = petNPCOwner.GetMaxAtk()       # 攻击方最大攻击
         #GameWorld.DebugLog("灵宠攻击,直接取主人攻击力: %s ~ %s,  自己: %s ~ %s" % (aMinAtk, aMaxAtk, atkObj.GetMinAtk(), atkObj.GetMaxAtk()))
         
         hurtValueExPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(petNPCOwner, defObj, curSkill, ChConfig.TriggerType_PetAtkHurtExPer)
+    else:
+        atkPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddAtkPer)        
+        
+    if atkPer != ChConfig.Def_MaxRateValue:
+        aMinAtk = aMinAtk * float(atkPer)/ChConfig.Def_MaxRateValue
+        aMaxAtk = aMaxAtk * float(atkPer)/ChConfig.Def_MaxRateValue
         
     enemyObj = None
     aPetStrengthenPer, dPetWeakenPer = 0, 0 # 强化灵兽, 弱化灵兽
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
index 58fe02f..1aee811 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -635,7 +635,7 @@
 
     #执行攻击结果
     for obj in resultList:
-        SkillCommon.SkillLostHP(obj, curSkill.GetSkillTypeID(), attacker, lostHP, tick, isDoAttackResult=False)
+        SkillCommon.SkillLostHP(obj, curSkill, attacker, lostHP, tick, isDoAttackResult=False)
     
     __DoAreaAttackResult(attacker, defender, curSkill, resultList, attackerHP, tick, isExSkill)  
     return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index db86242..69631ac 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -5160,7 +5160,8 @@
 TriggerType_BeSuperHitHurtExPer,  # 被暴击时受到额外伤害百分比 103
 TriggerType_PetAtkHurtExPer,  # 灵宠攻击时额外伤害百分比 104
 TriggerType_BeHurt,   # 受伤时触发 105
-) = range(1, 106)
+TriggerType_AttackAddAtkPer,  # 攻击时增加攻击力 106
+) = range(1, 107)
 
 
 #不可以佩戴翅膀的地图
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
index 03f7aaf..09e97c0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
@@ -1298,7 +1298,7 @@
     skillTypeID, buffOwner = 0, None
     lostValue = int(GameObj.GetMaxHP(curPlayer) * lostHPPer / 100.0) * lostTime
     #GameWorld.DebugLog("OnCollecting lostHPPer=%s,lostTime=%s,lostValue=%s" % (lostHPPer, lostTime, lostValue), playerID)
-    SkillCommon.SkillLostHP(curPlayer, skillTypeID, buffOwner, lostValue, tick, skillAffect=False)
+    SkillCommon.SkillLostHP(curPlayer, None, buffOwner, lostValue, tick, skillAffect=False)
     return
 
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
index bb61405..3d1f87c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
@@ -616,7 +616,7 @@
     curPlayer.SetDict(ChConfig.Def_PlayerKey_CollectLostHPTick, tick)
     lostValue = int(GameObj.GetMaxHP(curPlayer) * lostHPPer / 100.0) * lostTime
     skillTypeID, buffOwner = 0, None
-    SkillCommon.SkillLostHP(curPlayer, skillTypeID, buffOwner, lostValue, tick, skillAffect=False)
+    SkillCommon.SkillLostHP(curPlayer, None, buffOwner, lostValue, tick, skillAffect=False)
     GameWorld.DebugLog("采集掉血: npcID=%s,lostHPPer=%s,lostTime=%s,lostValue=%s" % (collectNPCIpyData.GetNPCID(), lostHPPer, lostTime, lostValue))
     return
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
index 1ab2adb..54004e8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -1089,6 +1089,19 @@
     
     return DelBuffBySkillID(curObj, skillID, tick)
 
+def IsInDebuffState(curObj):
+    ## 是否处于减益状态
+    for buffType in [IPY_GameWorld.bfDeBuff, IPY_GameWorld.bfProcessDeBuff, IPY_GameWorld.bfActionBuff]:
+        buffTuple = SkillCommon.GetBuffManagerByBuffType(curObj, buffType)
+        if buffTuple == ():
+            continue
+        
+        buffManager = buffTuple[0]
+        if buffManager.GetBuffCount():
+            return True
+        
+    return False
+
 def PYSync_RefreshBuff(gameObj, curBuff, buffType, notifyAll=True, owner = None, errSkillID=None):
     try:
         sendPack = ChNetSendPack.tagObjAddBuff()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py
index b1f9b17..d29fd1c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py
@@ -44,11 +44,9 @@
     #buff拥有者
     buffOwner = SkillCommon.GetBuffOwner(curBuff)
     
-    curBuffSkillID = curBuff.GetSkill().GetSkillTypeID()
-    
     # SkillLostHP前调用 死亡或者其他情况会取消curBuff
     curBuff.SetValue2(max(curBuff.GetValue2() - 1, 0))
-    SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
+    SkillCommon.SkillLostHP(defender, curBuff.GetSkill(), buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
     
     return
 
@@ -92,7 +90,7 @@
     #无剩余
     if count > 0:
     
-        SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), SkillCommon.GetBuffOwner(curBuff), 
+        SkillCommon.SkillLostHP(defender, curSkill, SkillCommon.GetBuffOwner(curBuff), 
                                 curBuff.GetValue()*count, tick, hurtType=ChConfig.Def_HurtType_Bleed)
     #已经死亡不触发
     if GameObj.GetHP(defender) <= 0:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py
index 7080813..ae810b1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py
@@ -48,7 +48,7 @@
     # SkillLostHP前调用 死亡或者其他情况会取消curBuff
     curBuff.SetValue2(max(curBuff.GetValue2() - 1, 0))
     
-    SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Burn)
+    SkillCommon.SkillLostHP(defender, curBuff.GetSkill(), buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Burn)
     if buffOwner and GameObj.GetHP(buffOwner) > 0:
         # 此处暂无法用被动效果实现
         buffManager = defender.GetProcessDeBuffState()
@@ -98,7 +98,7 @@
         addBurnHurtPer = defender.GetDictByKey("addBurnHurtPer") # 灼烧伤害加成
         if addBurnHurtPer:
             totalDecHP = int(totalDecHP * (1 + addBurnHurtPer/float(ChConfig.Def_MaxRateValue)))
-        SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), SkillCommon.GetBuffOwner(curBuff), 
+        SkillCommon.SkillLostHP(defender, curSkill, SkillCommon.GetBuffOwner(curBuff), 
                                 totalDecHP, tick, hurtType=ChConfig.Def_HurtType_Burn)
     
     if GameObj.GetHP(defender) <= 0:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py
index f5433d2..46f4cac 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py
@@ -41,7 +41,7 @@
     
     curBuffSkillID = curBuff.GetSkill().GetSkillTypeID()
     
-    SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
+    SkillCommon.SkillLostHP(defender, curBuff.GetSkill(), buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
     if curEffect.GetEffectValue(2) and buffOwner:
         SkillCommon.SkillAddHP(buffOwner, curBuffSkillID, singleDecHP)
 
@@ -89,7 +89,7 @@
     
     buffOwner = SkillCommon.GetBuffOwner(curBuff)
     
-    SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), buffOwner, buffValue, tick, hurtType=ChConfig.Def_HurtType_Bleed)
+    SkillCommon.SkillLostHP(defender, curSkill, buffOwner, buffValue, tick, hurtType=ChConfig.Def_HurtType_Bleed)
     
     # 执行次数
     OnPassiveSkillByHurtCount(defender, curBuff, curEffect, buffOwner)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py
index 6d5dcad..ee5b855 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py
@@ -26,7 +26,7 @@
     
     if GameObj.GetHP(curObj) <= 0:
         return
-    SkillCommon.SkillLostHP(curObj, curBuff.GetBuffID(), SkillCommon.GetBuffOwner(curBuff), 
+    SkillCommon.SkillLostHP(curObj, curBuff.GetSkill(), SkillCommon.GetBuffOwner(curBuff), 
                             curBuff.GetValue(), tick, hurtType=curBuff.GetValue1())
     return
 
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 34f2968..f179b2b 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
@@ -1298,11 +1298,12 @@
 # hurtType 飘血类型
 # skillAffect 默认True 会被各种技能BUFF盾等影响伤血数值
 #             False代表一些特殊处理纯固定伤害飘字(如采集固定掉1点血)
-def SkillLostHP(curObj, skillTypeID, buffOwner, lostValue, tick, view=True, 
+def SkillLostHP(curObj, curSkill, buffOwner, lostValue, tick, view=True, 
                 isDoAttackResult=True, hurtType=ChConfig.Def_HurtType_Normal,
                 skillAffect=True):
+    skillID = curSkill.GetSkillID() if curSkill else 0
     if lostValue <= 0:
-        GameWorld.Log('###技能伤害血量异常,数值错误 = %s,技能类型ID = %s' % (lostValue, skillTypeID))
+        GameWorld.Log('###技能伤害血量异常,数值错误 = %s,技能类型ID = %s' % (lostValue, skillID))
         return
     
     if not curObj.GetCanAttack():
@@ -1311,7 +1312,7 @@
         return
     
     curObjType = curObj.GetGameObjType()
-    curSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID, 1)
+    #curSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID, 1)
     
     atkObjType = buffOwner.GetGameObjType() if buffOwner else -1
     
@@ -1362,7 +1363,7 @@
     AttackCommon.WriteHurtLog(buffOwner, curObj, curSkill, lostValue, hurtType, "持续掉血")
     if view:
         #广播伤血类型
-        AttackCommon.ChangeHPView(curObj, buffOwner, skillTypeID, lostValue, hurtType)
+        AttackCommon.ChangeHPView(curObj, buffOwner, skillID, lostValue, hurtType)
         if buffOwner:
             PassiveBuffEffMng.OnPassiveSkillTrigger(buffOwner, curObj, curSkill, ChConfig.TriggerType_AttackOverPassive, tick)
         
@@ -1415,7 +1416,7 @@
     
     #统一调用攻击结束动作
     if isDoAttackResult:
-        BaseAttack.DoLogic_AttackResult(buffOwner, curObj, None, tick)
+        BaseAttack.DoLogic_AttackResult(buffOwner, curObj, curSkill, tick)
     return lostHP
 
 ## 检查增加淬毒buff
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py
index 83300e7..727a1a6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py
@@ -32,4 +32,4 @@
     hurtEnhance = defenderMaxHp*skillPer + skillEnhance
     hurtEnhance = min(hurtEnhance, defenderMaxHp)
 
-    return SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), attacker, int(hurtEnhance), tick, isDoAttackResult=False)
+    return SkillCommon.SkillLostHP(defender, curSkill, attacker, int(hurtEnhance), tick, isDoAttackResult=False)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py
index 3986ec2..a62994e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py
@@ -28,4 +28,4 @@
     
     attrValue = EffGetSet.GetValueByEffIndex(attacker, attrIndex)
     hurtValue = int(attrValue * skillPer + skillEnhance)
-    return SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), attacker, hurtValue, tick, isDoAttackResult=False)
+    return SkillCommon.SkillLostHP(defender, curSkill, attacker, hurtValue, tick, isDoAttackResult=False)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py
index dc88b19..ae2b6fe 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py
@@ -45,7 +45,7 @@
     
     GameWorld.DebugLog("        换血: atkID=%s,defID=%s,skillID=%s,hurtValue=%s,hpHurtValue=%s,atkHurtValue=%s,curHP=%s,tagHP=%s" 
                        % (attacker.GetID(), defender.GetID(), curSkill.GetSkillID(), hurtValue, hpHurtValue, atkHurtValue, curHP, tagHP))
-    lostHP = SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), attacker, hurtValue, tick, isDoAttackResult=False, skillAffect=False)
+    lostHP = SkillCommon.SkillLostHP(defender, curSkill, attacker, hurtValue, tick, isDoAttackResult=False, skillAffect=False)
     if lostHP:
-        SkillCommon.SkillLostHP(attacker, curSkill.GetSkillTypeID(), attacker, hurtValue, tick, isDoAttackResult=False, skillAffect=False)
+        SkillCommon.SkillLostHP(attacker, curSkill, attacker, hurtValue, tick, isDoAttackResult=False, skillAffect=False)
     return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py
index 8bd6703..eb243c5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py
@@ -45,4 +45,4 @@
         #GameWorld.DebugLog("    最高不超过自身属性! selfAttrIndex=%s,selfAttrValue=%s,selfPer=%s,hurtValueMax=%s" 
         #                   % (selfAttrIndex, selfAttrValue, selfPer, hurtValueMax))
         
-    return SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), attacker, hurtValue, tick)
+    return SkillCommon.SkillLostHP(defender, curSkill, attacker, hurtValue, tick)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5015.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5015.py
new file mode 100644
index 0000000..e5f97f3
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5015.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveBuff.PassiveSkill_5015
+#
+# @todo:被攻击触发,附加负面状态判断
+# @author hxp
+# @date 2024-04-16
+# @version 1.0
+#
+# 详细描述: 被攻击触发,附加负面状态判断
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-04-16 17:00"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+import BuffSkill
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+    checkInDebuff = effect.GetEffectValue(1)
+    if checkInDebuff:
+        if not BuffSkill.IsInDebuffState(attacker):
+            return False
+    return GameWorld.CanHappen(effect.GetEffectValue(0))
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5016.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5016.py
new file mode 100644
index 0000000..19d2c2c
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5016.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveBuff.PassiveSkill_5016
+#
+# @todo:灵宠攻击后触发,附加目标负面状态判断
+# @author hxp
+# @date 2024-04-16
+# @version 1.0
+#
+# 详细描述: 灵宠攻击后触发,附加目标负面状态判断
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-04-16 17:00"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+import BuffSkill
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+    checkInDebuff = effect.GetEffectValue(1)
+    if checkInDebuff:
+        if not BuffSkill.IsInDebuffState(defender):
+            return False
+    return GameWorld.CanHappen(effect.GetEffectValue(0))
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5017.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5017.py
new file mode 100644
index 0000000..1ca57c0
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5017.py
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveBuff.PassiveSkill_5017
+#
+# @todo:攻击时提升攻击力,附加当前血量判断
+# @author hxp
+# @date 2024-04-16
+# @version 1.0
+#
+# 详细描述: 攻击时提升攻击力,附加当前血量判断
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-04-16 17:00"""
+#-------------------------------------------------------------------------------
+
+import ChConfig
+import GameObj
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+    checkType = effect.GetEffectValue(2)
+    if checkType:
+        checkHPPer = effect.GetEffectValue(1)
+        nowHPPer = GameObj.GetHP(attacker) * float(ChConfig.Def_MaxRateValue) / GameObj.GetMaxHP(attacker)
+        # 大于
+        if checkType == 1:
+            if nowHPPer <= checkHPPer:
+                return False
+        # 小于
+        elif checkType == 2:
+            if nowHPPer >= checkHPPer:
+                return False
+            
+    return True
+
+def GetValue(attacker, defender, effect):
+    return effect.GetEffectValue(0)
+
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
index 488bdc9..29a15b9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -452,6 +452,9 @@
              5012:ChConfig.TriggerType_BeMissSkill,   # 目标闪避后触发技能 101
              5013:ChConfig.TriggerType_PetAtkHurtExPer,   # 灵宠攻击时额外伤害百分比 104
              5014:ChConfig.TriggerType_BeHurt,   # 受伤时触发 105
+             5015:ChConfig.TriggerType_BeAttackOver,   # 被攻击后触发 20
+             5016:ChConfig.TriggerType_AttackOverPet,   # 灵宠攻击(对敌技能)后被动技能被触发 97
+             5017:ChConfig.TriggerType_AttackAddAtkPer,  # 攻击时增加攻击力 106
              }
     return tdict.get(effectID, -1) 
     #===========================================================================

--
Gitblit v1.8.0