ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
@@ -365,6 +365,7 @@
    def GetLayerMax(self): return self._ipyData.GetLayerMax()
    def GetBuffRepeat(self): return self._ipyData.GetBuffRepeat() # Buff叠加规则
    def GetDispersedLimit(self): return self._ipyData.GetDispersedLimit() or self._ipyData.GetSkillType() == ChConfig.Def_SkillType_Halo # 驱散限制
    def GetBuffRetain(self): return self._ipyData.GetBuffRetain()
    def GetFightPower(self): return self._ipyData.GetFightPower()
    
class PyBuff():
@@ -392,6 +393,8 @@
    def GetSkillData(self): return self._skillData
    def GetSkillID(self): return self._skillData.GetSkillID()
    def GetCurBuffState(self): return self._skillData.GetCurBuffState()
    def GetDispersedLimit(self): return self._skillData.GetDispersedLimit()
    def GetBuffRetain(self): return self._skillData.GetBuffRetain()
    def GetAddTiming(self): return self._addTiming
    def SetAddTiming(self, addTiming):
        self._addTiming = addTiming
@@ -661,6 +664,7 @@
    def GetLayerMax(self): return self._skillData.GetLayerMax()
    def GetBuffRepeat(self): return self._skillData.GetBuffRepeat() # Buff叠加规则
    def GetDispersedLimit(self): return self._skillData.GetDispersedLimit() # 驱散限制
    def GetBuffRetain(self): return self._ipyData.GetBuffRetain()
    def GetFightPower(self): return self._skillData.GetFightPower()
    
    ## ---------------------------------- 非技能表内容 ----------------------------------
@@ -844,6 +848,7 @@
        self._kvDict = {} # 自定义kv字典
        self._bigTurnAtkbackCnt = 0 # 大回合累计反击次数
        self._incrementValue = 0 # 自增值,每场战斗重置,用于确保唯一的场景,如 Skill tag 标签
        self._skillHappenFailCntDict = {} # 技能累计概率触发次数,使用成功后重置 {skillID:failCnt, ...}
        self._skillUseCntDict = {} # 技能累计使用次数 {skillID:useCnt, ...}
        self._skillTurnUseCntDict = {} # 技能单回合累计使用次数 {skillID:useCnt, ...}
        self._skillMgr = ObjPool.GetPoolMgr().acquire(SkillManager, self)
@@ -909,6 +914,7 @@
        return
    
    def ResetBattleEffect(self):
        ## 重置战斗属性,一般刷属性前调用
        self._batAttrDict = {}
        self._batAttrDict.update(self._initAttrDict)
        self.__onUpdBatAttr()
@@ -1077,9 +1083,19 @@
        self._skillTempAttrDict[attrID] = self._skillTempAttrDict.get(attrID, 0) + value
    def ClearSkillTempAttr(self): self._skillTempAttrDict = {}
    
    def GetSkillHappenFailCnt(self, skillID): return self._skillHappenFailCntDict.get(skillID, 0) # 技能概率触发失败累计次数
    def IsSkillCanHappen(self, skillID, happenRate):
        if happenRate and not GameWorld.CanHappen(happenRate, ChConfig.Def_MaxRateValue):
            self._skillHappenFailCntDict[skillID] = self._skillHappenFailCntDict.get(skillID, 0) + 1
            return False
        self._skillHappenFailCntDict.pop(skillID, 0)
        return True
    def GetSkillUseCnt(self, skillID): return self._skillUseCntDict.get(skillID, 0) # 单场战斗累计使用次数
    def GetSkillTurnUseCnt(self, skillID): return self._skillTurnUseCntDict.get(skillID, 0) # 单回合累计使用次数
    def ResetSkillUseCnt(self):
        ## 每场战斗开始时重置
        self._skillHappenFailCntDict = {}
        self._skillUseCntDict = {}
        self._skillTurnUseCntDict = {}
        self._incrementValue = 0