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] = {}
@@ -226,6 +238,7 @@
    def GetEffectID(self): return self._effID
    def GetEffectValue(self, index): return self._values[index] if len(self._values) > index else 0
    def GetEffectValueCount(self): return len(self._values)
    def GetEffectValues(self): return self._values # 直接返回整个效果values
    def GetTriggerWay(self): return self._triggerWay
    def GetTriggerSrc(self): return self._triggerSrc
    #def GetTriggerParams(self, index): return self._triggerParams[index] if len(self._triggerParams) > index else 0
@@ -401,13 +414,13 @@
        return
    
    def GetBuff(self, buffID): return self._buffIDDict.get(buffID, None)
    def FindBuffBySkillID(self, skillID):
    def FindBuffListBySkillID(self, skillID):
        ## 返回该技能ID的所有buff列表
        skillData = IpyGameDataPY.GetIpyGameData("Skill", skillID)
        if not skillData:
            return []
        return self.FindBuffBySkillTypeID(skillData.GetSkillTypeID())
    def FindBuffBySkillTypeID(self, skillTypeID):
        return self.FindBuffListBySkillTypeID(skillData.GetSkillTypeID())
    def FindBuffListBySkillTypeID(self, skillTypeID):
        ## 返回该技能TypeID的所有buff列表
        if skillTypeID not in self._skillTypeIDBuffIDs:
            return []
@@ -417,6 +430,13 @@
                continue
            buffs.append(self._buffIDDict[buffID])
        return buffs
    def FindBuffByState(self, state):
        ## 查找某种buff状态的buff
        buffIDList = self._buffStateDict.get(state, [])
        if not buffIDList:
            return
        buffID = buffIDList[0]
        return self._buffIDDict.get(buffID, None)
    
    def AddBuffState(self, state, buffID):
        ## 添加buff影响的状态,ChConfig.BatObjStateList
@@ -640,6 +660,10 @@
        TurnPassive.RefreshPassive(self)
        return
    
    def TurnReset(self):
        ## 回合重置
        self._skillTurnUseCntDict = {}
    def UpdInitBatAttr(self, initAttrDict, skillIDList):
        ## 更新战斗属性,一般只有主阵容需要更新,战斗中养成、装备变化等引起的主阵容属性变更时需要实时更新
        self._initAttrDict = initAttrDict
@@ -708,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):
@@ -803,10 +839,6 @@
        ## 统计治疗
        self.cureStat += cureValue
        return self.cureStat
    def TurnReset(self):
        ## 回合重置
        self._skillTurnUseCntDict = {}
    
class BattleObjMgr():
    ## 战斗对象管理器