hxp
2025-12-30 0c69c775c09a25e1d3aa9ad4e62d7140ddfa98c1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
@@ -33,6 +33,7 @@
        self._batObj = batObj
        self._objID = batObj.GetID() if batObj else 0
        self._skillIDList = [] # 已有技能ID列表,获取被动中快速判断已学技能用
        self.noDeadSkill = None # 不死技能效果,暂时只支持最多1个这种技能
        
        # 技能
        self._AffectSkillDict = {} # 被动技能 {(触发方式, 有效来源):{技能ID:[effID, ...], ...}, ...}
@@ -189,6 +190,11 @@
        effDict[skillID].append(effectID)
        if triggerWay not in self._skillTriggerWayList:
            self._skillTriggerWayList.append(triggerWay)
        # 加载不死技能效果
        if triggerWay == ChConfig.TriggerWay_NoDead:
            self.noDeadSkill = curSkill
        return
        
    def RefreshBuffPassiveEffect(self):
@@ -1087,6 +1093,17 @@
            return False
        return True
    
    def CanNoDead(self):
        '''是否还可触发不死效果
        暂定单个武将最多只支持配置1个不死效果,且单场战斗最多触发x次,即按技能cd判断即可
        '''
        noDeadSkill = self._passiveEffMgr.noDeadSkill # 固定有被动触发
        if not noDeadSkill:
            return
        if noDeadSkill.GetRemainTime():
            return
        return True
    def GetSneerTagObj(self):
        ## 获取被嘲讽的目标,如果存在则一定是活着的目标
        buffIDList = self._buffMgr.GetStateBuffIDList(ChConfig.BatObjState_Sneer)