ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
@@ -832,6 +832,7 @@ self._batAttrDict = {} # 实际战斗属性,包含buff层级的实际属性 {attrID:+-value, ...} value可能是负值 self._skillTempAttrDict = {} # 某次技能释放中临时的属性增减 {attrID:+-value, ...} value可能是负值 self._kvDict = {} # 自定义kv字典 self._bigTurnAtkbackCnt = 0 # 大回合累计反击次数 self._skillUseCntDict = {} # 技能累计使用次数 {skillID:useCnt, ...} self._skillTurnUseCntDict = {} # 技能单回合累计使用次数 {skillID:useCnt, ...} self._skillMgr = ObjPool.GetPoolMgr().acquire(SkillManager, self) @@ -1063,8 +1064,6 @@ def GetSkillUseCnt(self, skillID): return self._skillUseCntDict.get(skillID, 0) # 单场战斗累计使用次数 def GetSkillTurnUseCnt(self, skillID): return self._skillTurnUseCntDict.get(skillID, 0) # 单回合累计使用次数 def ResetSkillTurnUseCnt(self): self._skillTurnUseCntDict = {} def ResetSkillUseCnt(self): self._skillUseCntDict = {} self._skillTurnUseCntDict = {} @@ -1072,6 +1071,14 @@ self._skillUseCntDict[skillID] = self._skillUseCntDict.get(skillID, 0) + 1 self._skillTurnUseCntDict[skillID] = self._skillTurnUseCntDict.get(skillID, 0) + 1 def GetBigTurnAtkbackCnt(self): return self._bigTurnAtkbackCnt def AddBigTurnAtkbackCnt(self): self._bigTurnAtkbackCnt += 1 def ResetBigTurn(self): ## 每大回合重置 self._bigTurnAtkbackCnt = 0 self._skillTurnUseCntDict = {} def GetLastHurtValue(self): return self._lastHurtValue def SetLastHurtValue(self, lastHurtValue): self._lastHurtValue = lastHurtValue ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -1574,7 +1574,7 @@ if turnNum > 1: # 第1回合不用刷新技能 RefreshObjSkillByBigTurn(batObj) RefreshObjByBigTurn(turnFight, batObj) batObj.ResetBigTurn() # 每大回合重置 TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_BigTurnStart) return @@ -1669,8 +1669,6 @@ remainTime -= 1 curSkill.SetRemainTime(remainTime) GameWorld.DebugLog(" 更新技能CD: curID=%s,skillID=%s,remainTime=%s" % (curID, skillID, remainTime)) batObj.ResetSkillTurnUseCnt() # 重置回合使用次数,放刷新CD后重置 return def RefreshObjByBigTurn(turnFight, batObj): ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -998,6 +998,8 @@ if curBatObj.GetHP() < 0: curBatObj.SetHP(0) if useSkill.GetBatType() == ChConfig.TurnBattleType_AtkBack: curBatObj.AddBigTurnAtkbackCnt() skillID = useSkill.GetSkillID() curBatObj.AddSkillUseCnt(skillID) if useSkill.GetCoolDownTime(): @@ -1099,8 +1101,6 @@ #GameWorld.DebugLog("同阵营不触发反击!") # 魅惑可能导致打自己人 return # 大回合单武将反击次数限制 canAtkbackDictTypeList = IpyGameDataPY.GetFuncEvalCfg("ParryCfg", 2) if atkObj.GetAtkDistType() not in canAtkbackDictTypeList: heroID = atkObj.GetHeroID() @@ -1119,6 +1119,14 @@ GameWorld.DebugLog("没有格挡不可反击! tagID=%s" % tagID) return # 大回合单武将反击次数限制 bigTurnAtkbackCntMax = IpyGameDataPY.GetFuncCfg("ParryCfg", 4) if bigTurnAtkbackCntMax: atkbackCnt = tagObj.GetBigTurnAtkbackCnt() if atkbackCnt >= bigTurnAtkbackCntMax: GameWorld.DebugLog("本大回合累计反击次数达上限! atkbackCnt=%s >= %s" % (atkbackCnt, bigTurnAtkbackCntMax)) return skillManager = tagObj.GetSkillManager() for index in range(0, skillManager.GetSkillCount()): useSkill = skillManager.GetSkillByIndex(index)