From 229d066301a40c3e20a1167571c42185a4e6029b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 20 三月 2026 11:03:56 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(主线关卡每个房间开始战斗时补通知当前进度;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
index 602c494..afc8275 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
@@ -415,7 +415,7 @@
     def GetLayerCnt(self): return self._ipyData.GetLayerCnt()
     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 GetDispersedLimit(self): return self._ipyData.GetDispersedLimit() or self._ipyData.GetSkillType() in ChConfig.Def_HaloSkill_List # 驱散限制
     def GetBuffRetain(self): return self._ipyData.GetBuffRetain()
     def GetFightPower(self): return self._ipyData.GetFightPower()
     
@@ -882,6 +882,12 @@
         curSkill = PySkill(ipyData, self._batObj.GetID())
         self._skillDict[skillID] = curSkill
         self._skillList.append(curSkill)
+        
+        learnSkillExEff = curSkill.GetEffectByID(ChConfig.SkillEff_LearnSkillEx)
+        if learnSkillExEff:
+            skillIDEx = learnSkillExEff.GetEffectValue(0)
+            if skillIDEx:
+                self.LearnSkillByID(skillIDEx)
         return curSkill
     
     def __deleteSkill(self, curSkill):
@@ -935,6 +941,7 @@
         self._mainTagIDList = [] # 主技能目标ID列表,一般用于技能拆分成多个技能效果时,子技能可能会用到主技能的对象做逻辑
         self._timing = 0 # 当前武将时间节点: 0-回合前;1-回合后
         self._angerOverflow = 0 # 怒气技能怒气溢出值,子技能也生效,因为主技能释放后怒气会被扣除,所以这里做个记录
+        self._beFrozenCnt = 0 # 本场战斗累计被冰冻次数
         
         # 统计
         self.hurtStat = 0 # 输出统计
@@ -999,7 +1006,7 @@
     def GetTFGUID(self): return self.tfGUID # 所属的某场战斗
     def SetTFGUID(self, tfGUID): self.tfGUID = tfGUID
     def GetTurnFight(self): return TurnAttack.GetTurnFightMgr().getTurnFight(self.tfGUID)
-    def GetBatLineup(self):
+    def GetTFBatLineup(self):
         if not self._batLineup:
             turnFight = self.GetTurnFight()
             batFaction = turnFight.getBatFaction(self.faction)
@@ -1037,6 +1044,15 @@
     def GetPosNum(self): return self.posNum
     def GetFaction(self): return self.faction
     def SetFaction(self, faction): self.faction = faction
+    def GetBatObjType(self):
+        ## 战斗对象实例类型
+        if 1 <= self.posNum <= ShareDefine.LineupObjMax:
+            return ChConfig.BatObjType_BatHero
+        if self.posNum == ChConfig.TFPosNum_Mingge:
+            return ChConfig.BatObjType_Mingge
+        if ChConfig.TFPosNum_Lingshou <= self.posNum:
+            return ChConfig.BatObjType_Lingshou
+        return 0
     def GetFightPower(self): return self.fightPower
     def SetFightPower(self, fightPower): self.fightPower = fightPower
     def GetLV(self): return self.lv
@@ -1079,6 +1095,7 @@
     
     def IsInControlled(self): return self.IsInBuffStateGroup([1, 2]) # 是否被控制中
     def IsInControlledHard(self): return self.IsInBuffStateGroup([1]) # 是否被硬控中
+    def IsInControlledSoft(self): return self.IsInBuffStateGroup([2]) # 是否被软控中
     def IsInBuffStateGroup(self, buffStateGroups):
         '''是否在某个状态组中
                         已定义的组: 1 - 硬控组;2 - 软控组;3 - 限制普攻组;4 - 限制怒技组;5 - 限制被动动态组
@@ -1231,6 +1248,9 @@
     def GetTiming(self): return self._timing # 时间节点 0-回合前;1-回合后
     def SetTiming(self, timing): self._timing = timing
     
+    def GetBeFrozenCnt(self): return self._beFrozenCnt
+    def SetBeFrozenCnt(self, beFrozenCnt): self._beFrozenCnt = beFrozenCnt
+    
     def StatHurtValue(self, hurtValue):
         ## 统计输出
         self.hurtStat += hurtValue

--
Gitblit v1.8.0