From 3ed128401680ce3755dee186f48c7fb965f7aca8 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 18 九月 2025 10:11:12 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(诸葛果技能;追击支持;优化连击追击;程序内置限制单武将单次行动中每个对象累计使用技能次数20次;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py index e5a4564..2c03cc5 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py @@ -162,6 +162,7 @@ self.timeline = 0 # 时间轴节点 turnNum*1000+actionIndex*100++actionNum self.startTime = 0 # 开始时间戳,支持毫秒小数 self.costTime = 0 # 单场战斗总耗时,支持毫秒小数 + self._oneActionUseSkillCntDict = {} # 某对象行动开始后所有对象累计使用技能次数,用于单对象单次行动中限制每个对象的最高触发技能次数 {objID:useCnt, ...} # pve 多小队 - 一般只有PVE用到 self.lineupIndex = 0 # 当前小队索引 @@ -427,6 +428,12 @@ else: ObjPool.GetPoolMgr().release(clientPack) return + + def ResetOneActionUseSkillCnt(self): self._oneActionUseSkillCntDict = {} + def GetOneActionUseSkillCnt(self, objID): return self._oneActionUseSkillCntDict.get(objID, 0) + def SetOneActionUseSkillCnt(self, objID, useCnt): + self._oneActionUseSkillCntDict[objID] = useCnt + return useCnt class TurnFightMgr(): ## 回合战斗管理器 @@ -1340,6 +1347,7 @@ batLineup.actionNum = ActionNumStart for objID in batLineup.posObjIDDict.values(): batObj = batObjMgr.getBatObj(objID) + turnFight.ResetOneActionUseSkillCnt() TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_FightStart) turnFight.enterLogic = True @@ -1358,10 +1366,6 @@ #GameWorld.DebugLog("OnTimelineChange! objID=%s" % (objID)) if not batObj or not batObj.IsAlive(): continue - - batObj.SetDict(ChConfig.Def_Obj_Dict_TurnComboNum, 0) - batObj.SetDict(ChConfig.Def_Obj_Dict_TurnMissNum, 0) - batObj.SetDict(ChConfig.Def_Obj_Dict_TurnParryNum, 0) curID = batObj.GetID() skillManager = batObj.GetSkillManager() @@ -1440,6 +1444,7 @@ if batObj.GetHP() <= 0: return + turnFight.ResetOneActionUseSkillCnt() TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_BigTurnStart) return @@ -1463,6 +1468,7 @@ return GameWorld.DebugLog("---[武将回合开始时] : curID=%s,curHP=%s/%s" % (batObj.GetID(), batObj.GetHP(), batObj.GetMaxHP())) + turnFight.ResetOneActionUseSkillCnt() TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_HeroTurnStart) return -- Gitblit v1.8.0