From 1ea23ac831a440e8eb302b199ab1abdadfec184c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 11 四月 2024 16:30:49 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(增加buff被动效果ID 4543、4544、4545、4546;) 1. 增加buff被动效果ID4543: 被暴击附加额外伤害百分比; 2. 增加buff被动效果ID4544: 触发时减少buff层数; 3. 增加buff被动效果ID4545: 灵宠技能释放成功触发技能; 4. 增加buff被动效果ID4546: 灵宠释放技能后触发删除本buff; 5. 技能被动效果ID 5000,支持每X回合配置; 6. buff替换方式增加方式3 - 只取最高,相同或低级的则不处理,减少长时buff无用的重复添加逻辑;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py             |   19 ++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4546.py  |   29 +++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py                    |    3 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py                     |    7 ++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py                   |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4543.py  |   31 ++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5000.py |   11 ++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py                             |   32 +++++-----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4545.py  |   25 ++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py     |   10 +++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                            |    9 ++-
 11 files changed, 154 insertions(+), 24 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 4db79b0..24ed42c 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
@@ -2191,6 +2191,7 @@
         if GameWorld.CanHappen(missRate):
             return 0, ChConfig.Def_HurtType_Miss
         
+    hurtValueExPer = 0 # 最终的伤害值附加额外伤害百分比
     hurtType, hurtTypeResultDict = CalcHurtTypeResult(atkObj, defObj, atkObjType, defObjType, happenState, curSkill)
     #GameWorld.DebugLog("GetHurtHP hurtType=%s, hurtTypeResultDict=%s" % (hurtType, hurtTypeResultDict))
     isLuckyHit, aLuckyHit, dLuckyHitReduce = hurtTypeResultDict[ChConfig.Def_HurtType_LuckyHit] # 幸运一击
@@ -2207,6 +2208,9 @@
         superHitPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SuperHitPer)
         superHitPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SuperHitPer)
         aSuperHit = aSuperHit*(superHitPer + ChConfig.Def_MaxRateValue)/ChConfig.Def_MaxRateValue
+        
+        if isSuperHit:
+            hurtValueExPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_BeSuperHitHurtExPer)
     else:
         # 重击加成
         thumpPer = 0
@@ -2452,6 +2456,12 @@
                            % (atkObj.GetID(), defObj.GetID(), skillID, hurtValue, multiValue))
         hurtValue = int(hurtValue * multiValue)
         
+    # 附加额外的伤害百分比 - 在最终的伤害计算完后再额外附加的伤害百分比
+    if hurtValueExPer > 0:
+        GameWorld.DebugLog("        额外附加伤害: atkID=%s,defID=%s,skillID=%s,hurtValue=%s,hurtValueExPer=%s" 
+                           % (atkObj.GetID(), defObj.GetID(), skillID, hurtValue, hurtValueExPer))
+        hurtValue += int(hurtValue * hurtValueExPer / float(ChConfig.Def_MaxRateValue))
+        
     #hurtValue = min(max(hurtValue, 0), ChConfig.Def_UpperLimit_DWord)
     
     if hurtType == ChConfig.Def_HurtType_Normal and atkSkillPerYinji > 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 bed2c7f..58fe02f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -1723,6 +1723,8 @@
         petOwner = PetControl.GetPetNPCOwner(attacker)
         petOwner.SetDict("useSkillPetID", attacker.GetID())
         PassiveBuffEffMng.OnPassiveSkillTrigger(petOwner, defender, curSkill, ChConfig.TriggerType_SkillSuccessPet, tick)
+        PassiveBuffEffMng.OnPassiveBuffTrigger(petOwner, defender, curSkill, ChConfig.TriggerType_SkillSuccessPet, tick)
+        PassiveBuffEffMng.OnPassiveBuffHappen(petOwner, defender, curSkill, ChConfig.TriggerType_SkillSuccessPet, tick)
         if isAtkSkill:
             PassiveBuffEffMng.OnPassiveSkillTrigger(petOwner, defender, curSkill, ChConfig.TriggerType_AttackOverPet, tick)
             
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 22d2e9e..f067015 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -68,7 +68,8 @@
 Def_Buff_Replace_Better,    # 相同typeid取最高,如果新的是低级的则不处理
 Def_Buff_Replace_New,       # 相同typeid替换最新,即使是低级的
 Def_Buff_Recharge,        # 若同类型buff存在不管等级高低,只给原buff充能只改变值或时间
-) = range(3)
+Def_Buff_Replace_BetterOnly,    # 相同typeid取最高,只取最高,相同或低级的则不处理
+) = range(4)
 
 # CanRepeatTime字段百位数,同一个释放者只能存在同一个技能buff,不同释放者根据情况而定
 (
@@ -686,7 +687,8 @@
 Def_Skill_Effect_MPPackage = 831
 #技能buff状态效果 A值为buff所属状态, 标记详见 Def_PlayerStateList
 Def_Skill_Effect_BuffState = 4012
-
+#buff触发时减层数
+Def_Skill_Effect_BuffTriggerDelLayer = 4544
 # 给宠物加属性的效果值, 不给人物属性
 Def_SkillEffs_Pet = [508]
 
@@ -5152,7 +5154,8 @@
 TriggerType_TurnFightStart, # 回合开场触发 100
 TriggerType_BeMissSkill,   # 目标闪避后触发技能 101
 TriggerType_BeHurtMax,   # 锁定受到伤害最大值 102
-) = range(1, 103)
+TriggerType_BeSuperHitHurtExPer,  # 被暴击附加额外伤害百分比 103
+) = range(1, 104)
 
 
 #不可以佩戴翅膀的地图
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
index afe72f7..3103f12 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
@@ -311,10 +311,25 @@
     return
 def GetSuperHitReduce(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitReduce)
 def SetSuperHitReduce(gameObj, value):
-    ## 暴击伤害减免
+    ## 暴击固定伤害减免 - 暴击时附加固定伤害减免,与 atkObj.GetSuperHit() 相对
     gameObj.SetDict(ChConfig.Def_PlayerKey_SuperHitReduce, value)
     if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
         PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_SuperHitReduce, value)
+    return
+
+def GetSuperHitHurtPer(gameObj): return gameObj.GetDictByKey(ChConfig.AttrName_SuperHitHurtPer)
+def SetSuperHitHurtPer(gameObj, value):
+    ## 强化暴伤 - 暴击时的总伤害加成,与 SuperHitHurtDefPer 相对,注意与暴击固定伤害区分
+    gameObj.SetDict(ChConfig.AttrName_SuperHitHurtPer, value)
+    if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
+        PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_SuperHitHurtPer, value)
+    return
+def GetSuperHitHurtDefPer(gameObj): return gameObj.GetDictByKey(ChConfig.AttrName_SuperHitHurtDefPer)
+def SetSuperHitHurtDefPer(gameObj, value):
+    ## 弱化暴伤 - 暴击时的总伤害减免
+    gameObj.SetDict(ChConfig.AttrName_SuperHitHurtDefPer, value)
+    if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
+        PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_SuperHitHurtDefPer, value)
     return
 
 def GetFaintRate(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_AttrFaintRate)
@@ -423,21 +438,6 @@
     gameObj.SetDict(ChConfig.AttrName_PetWeakenPer, value)
     if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
         PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_PetWeakenPer, value)
-    return
-
-def GetSuperHitHurtPer(gameObj): return gameObj.GetDictByKey(ChConfig.AttrName_SuperHitHurtPer)
-def SetSuperHitHurtPer(gameObj, value):
-    ## 强化暴伤
-    gameObj.SetDict(ChConfig.AttrName_SuperHitHurtPer, value)
-    if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
-        PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_SuperHitHurtPer, value)
-    return
-def GetSuperHitHurtDefPer(gameObj): return gameObj.GetDictByKey(ChConfig.AttrName_SuperHitHurtDefPer)
-def SetSuperHitHurtDefPer(gameObj, value):
-    ## 弱化暴伤
-    gameObj.SetDict(ChConfig.AttrName_SuperHitHurtDefPer, value)
-    if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
-        PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_SuperHitHurtDefPer, value)
     return
 
 def GetDamageBackRate(gameObj):
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 aa21f06..742985c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -219,7 +219,12 @@
             if buffSkillLV > curSkillLV:
                 # 只取最好的, 不可加直接退出
                 return False
-        
+        elif buffReplaceType == ChConfig.Def_Buff_Replace_BetterOnly:
+            if buffSkillLV >= curSkillLV:
+                # 只取最好的, 等级相同也不处理,适用于长时buff,防止相同等级时重复添加buff,减少处理逻辑及封包同步
+                #GameWorld.DebugLog("已存在buff,不处理! skillID=%s" % buffSkillID)
+                return
+            
         resultTime = -1 #不改变时间的情况
         if buffRepeatTimeType == ChConfig.Def_BuffTime_Reset:
             # 重置时间
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4543.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4543.py
new file mode 100644
index 0000000..1d381a3
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4543.py
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveBuff.PassiveBuff_4543
+#
+# @todo: BUFF类: 被暴击附加额外伤害百分比
+# @author hxp
+# @date 2024-04-11
+# @version 1.0
+#
+# 详细描述: BUFF类: 被暴击附加额外伤害百分比
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-04-11 16:30"""
+#-------------------------------------------------------------------------------
+
+import GameObj
+
+def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
+    
+    # 状态判断
+    #if passiveEffect.GetEffectValue(1):
+    #    if not GameObj.GetPyPlayerState(attacker, passiveEffect.GetEffectValue(1)):
+    #        return False
+    
+    return True
+
+def GetValue(attacker, defender, passiveEffect):
+    return passiveEffect.GetEffectValue(0)
+
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4545.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4545.py
new file mode 100644
index 0000000..9df456a
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4545.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveBuff.PassiveBuff_4545
+#
+# @todo:buff中灵宠释放技能后触发技能,所有技能
+# @author hxp
+# @date 2024-04-11
+# @version 1.0
+#
+# 详细描述: buff中灵宠释放技能后触发技能,所有技能
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-04-11 16:30"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+
+def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
+    return GameWorld.CanHappen(passiveEffect.GetEffectValue(0))
+
+def GetSkillData(passiveEffect):
+    skillID = passiveEffect.GetEffectValue(1)
+    return GameWorld.GetGameData().GetSkillBySkillID(skillID)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4546.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4546.py
new file mode 100644
index 0000000..ef24895
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4546.py
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveBuff.PassiveBuff_4546
+#
+# @todo:buff中灵宠释放技能后触发删除本buff
+# @author hxp
+# @date 2024-04-11
+# @version 1.0
+#
+# 详细描述: buff中灵宠释放技能后触发删除本buff
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-04-11 16:30"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+import BuffSkill
+
+def CheckCanHappen(attacker, defender, effect, tagSkill, **skillkwargs):
+    return True
+    
+def DoLogic(attacker, defender, effect, tagSkill, skillID):
+    tick = GameWorld.GetGameWorld().GetTick()
+    isOK = BuffSkill.DelBuffBySkillID(attacker, skillID, tick)
+    #GameWorld.DebugLog("buff中灵宠释放技能后触发删除本buff! atkID=%s,delSkillID=%s,isOK=%s" % (attacker.GetID(), skillID, isOK))
+    return
+
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5000.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5000.py
index a2587db..80f8f4a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5000.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5000.py
@@ -19,7 +19,7 @@
 
 # 进入XX buff状态触发技能
 def CheckCanHappen(attacker, defender, effect, curSkill):
-    #A-回合编号(0-每回合,>=1-第x回合);B-判断方式(0-等于,1-大于等于,2-小于等于);C-
+    #A-回合编号(0-每回合,>=1-x回合);B-判断方式(0-等于,1-大于等于,2-小于等于,3-每x回合);C-
     timeLine = attacker.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightTimeline)
     if not timeLine:
         return False
@@ -28,15 +28,18 @@
     checkType = effect.GetEffectValue(1)
     if checkTurnNum:
         turnNum = timeLine / 100
-        if checkType == 0:
+        if checkType == 0: # 第x回合
             if turnNum != checkTurnNum:
                 return False
-        elif checkType == 1:
+        elif checkType == 1: # 大于等于x回合
             if turnNum < checkTurnNum:
                 return False
-        elif checkType == 2:
+        elif checkType == 2: # 小于等于x回合
             if turnNum > checkTurnNum:
                 return False
+        elif checkType == 3: # 每x回合
+            if turnNum % checkTurnNum != 0:
+                return False
         else:
             return False
         
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 a228cb9..578a15c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -509,6 +509,9 @@
              4540:ChConfig.TriggerType_SuperHitPer, # 暴击伤害百分比
              4541:ChConfig.TriggerType_AttackAddSkillPer, # BUFF类:提高主动技能的技能伤害
              4542:ChConfig.TriggerType_BeHurtMax, # BUFF类:锁定受到伤害最大值 102
+             4543:ChConfig.TriggerType_BeSuperHitHurtExPer, # BUFF类: 被暴击附加额外伤害百分比 103
+             4545:ChConfig.TriggerType_SkillSuccessPet, # BUFF类: 灵宠技能释放成功都可触发
+             4546:ChConfig.TriggerType_SkillSuccessPet, # BUFF类: 灵宠释放技能后触发删除本buff
              
              803:ChConfig.TriggerType_BloodShield,  # 血盾
              806:ChConfig.TriggerType_BloodShield,  # 血盾
@@ -1564,6 +1567,8 @@
         
         if not IsValidPassiveSkill(curSkill):
             continue
+        
+        triggerCount = 0
         for effectInfo in effectList:
             passiveEffect = effectInfo[0]
             # 被动触发的技能
@@ -1590,8 +1595,14 @@
             SkillCommon.SetUsingPassiveSkill(attacker, 1)
             if SkillShell.UsePassiveTriggerSkill(attacker, skillData, defender, tick):
                 AfterUsePassiveSkill(pyName, attacker, defender, passiveEffect, tick)
+                triggerCount += 1
             SkillCommon.SetUsingPassiveSkill(attacker, 0)
 
+        if triggerCount:
+            hasEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_BuffTriggerDelLayer)
+            if hasEffect:
+                BuffSkill.ReduceBuffLayer(attacker, None, curSkill.GetSkillTypeID(), triggerCount)
+                
 def AfterUsePassiveSkill(pyName, attacker, defender, passiveEffect, tick):
     # 附加触发后逻辑
     callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "AfterUsePassiveSkill"))
@@ -1641,6 +1652,7 @@
         if not IsValidPassiveSkill(curSkill):
             continue
         
+        triggerCount = 0 # 成功触发次数
         for effectInfo in effectList:
             if stopPassiveSkill and curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_GiftSkill:
                 # 只有天赋才可以再次被触发
@@ -1674,6 +1686,13 @@
             else:
                 curValue += value
                 
+            triggerCount += 1
+            
+        if triggerCount:
+            hasEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_BuffTriggerDelLayer)
+            if hasEffect:
+                BuffSkill.ReduceBuffLayer(attacker, None, curSkill.GetSkillTypeID(), triggerCount)
+                
     return curValue
 
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
index 6ab83b7..672f0db 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -3631,6 +3631,9 @@
         addBuffValueList = GetAddBuffValue(attacker, curSkill, defender)
         result = BuffSkill.DoAddBuff(defender, skillBuffType, curSkill, tick, addBuffValueList, attacker, addForce=addForce)
         
+        if result == None:
+            return
+        
         # result为0 是抵消的不需要对buff处理
         if result is not 0:
             #添加BUFF后:处理技能效果,触发附加技能,加BUFF后产生的效果,惩罚和仇恨

--
Gitblit v1.8.0