From 0c96af08f55d05ab40eae9f940467dd8eafae44c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 16 九月 2025 14:07:53 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(增加属性ID技能增伤65、技能减伤66;曹轶技能;被动触发增加属性支持;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
index 8b7a961..e49c8f3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
@@ -45,7 +45,7 @@
         effList = []
         
         # 优先取关联技能的
-        if connSkillTypeID and connSkillTypeID not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_Buff]:
+        if connSkillTypeID and connSkillTypeID not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_Buff, ChConfig.TriggerSrc_SkillSelf, ChConfig.TriggerSrc_BuffSelf]:
             # 技能
             key = (triggerWay, connSkillTypeID)
             if key in self._AffectSkillDict:
@@ -99,13 +99,19 @@
             return
         if triggerWay == ChConfig.TriggerWay_CurSkillEff:
             return
-        if triggerSrc == ChConfig.TriggerSrc_Buff:
+        if triggerSrc in [ChConfig.TriggerSrc_Buff, ChConfig.TriggerSrc_BuffSelf]:
             # buff有效的不加进来
             return
         
         skillID = curSkill.GetSkillID()
         effectID = effect.GetEffectID()
         
+        if triggerWay == ChConfig.TriggerWay_CalcEffValue:
+            triggerWay = "%s_%s" % (triggerWay, effectID)
+            
+        if triggerSrc == ChConfig.TriggerSrc_SkillSelf:
+            triggerSrc = curSkill.GetSkillTypeID()
+            
         key = (triggerWay, triggerSrc)
         if key not in self._AffectSkillDict:
             self._AffectSkillDict[key] = {}
@@ -143,13 +149,19 @@
             return
         if triggerWay == ChConfig.TriggerWay_CurSkillEff:
             return
-        if triggerSrc == ChConfig.TriggerSrc_Skill:
+        if triggerSrc in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_SkillSelf]:
             # 技能有效的不加进来
             return
         
         buffID = buff.GetBuffID()
         effectID = effect.GetEffectID()
         
+        if triggerWay == ChConfig.TriggerWay_CalcEffValue:
+            triggerWay = "%s_%s" % (triggerWay, effectID)
+            
+        if triggerSrc == ChConfig.TriggerSrc_BuffSelf:
+            triggerSrc = skillData.GetSkillTypeID()
+            
         key = (triggerWay, triggerSrc)
         if key not in self._AffectBuffDict:
             self._AffectBuffDict[key] = {}
@@ -720,8 +732,20 @@
         #    return False
         return True
     
-    def IsInState(self, state):
+    def CheckInState(self, checkInState):
         ## 是否处于某种状态下
+        if isinstance(checkInState, int):
+            checkInStateList = [checkInState]
+        elif isinstance(checkInState, list) or isinstance(checkInState, tuple):
+            checkInStateList = checkInState
+        else:
+            return False
+        for state in checkInStateList:
+            if self._buffMgr.IsInBuffState(state):
+                return True
+        return False
+    def IsInState(self, state):
+        ## 是否处于指定状态下
         return self._buffMgr.IsInBuffState(state)
     
     def IsInControlled(self):

--
Gitblit v1.8.0