From cb452abc7bcda94073cfe0d136e831252374853d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 07 二月 2026 19:30:57 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(NPC成长表增加等级字段;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py | 30 ++++++++++++++++++++++++++----
1 files changed, 26 insertions(+), 4 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 d7b8c8e..c72aff2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
@@ -670,6 +670,7 @@
self._hurtListEx = [] # 额外伤血列表,如平摊、溅射 [HurtObj, ...]
self._bySkill = None # 由哪个技能触发的
self._byBuff = None # 由哪个buff触发的
+ self._byBatObj = None # 由哪个战斗对象触发的
self._byTriggerWay = 0 # 由哪个被动方式触发的
self._afterLogicList = [] # 技能释放后需要处理逻辑 [[logicType, logicParams], ...]
self._energy = 0 # 技能能量,一般用于累计能量达到某种条件后做逻辑
@@ -696,6 +697,7 @@
self._effIgnoreObjIDList = []
self._bySkill = None
self._byBuff = None
+ self._byBatObj = None
self._byTriggerWay = 0
self._afterLogicList = []
self.ClearHurtObj()
@@ -748,6 +750,8 @@
def SetBySkill(self, bySkill): self._bySkill = bySkill
def GetByBuff(self): return self._byBuff
def SetByBuff(self, byBuff): self._byBuff = byBuff
+ def GetByBatObj(self): return self._byBatObj
+ def SetByBatObj(self, byBatObj): self._byBatObj = byBatObj
def GetByTriggerWay(self): return self._byTriggerWay
def SetByTriggerWay(self, byTriggerWay): self._byTriggerWay = byTriggerWay
def GetTagObjList(self): return self._tagObjList # 技能主要目标列表
@@ -878,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):
@@ -909,6 +919,7 @@
self.faction = 0 # 所属阵营,一般只有双方阵营, 1 或 2,发起方默认1
self.lineupNum = 1 # 阵容位置编号,一般多V多时有用,通常默认1
self.posNum = 0 # 所在阵容站位
+ self._batLineup = None # 所属战斗阵容对象
self._hp = 0 # 当前生命值
self._xp = 0 # 当前怒气值
self._isAlive = True # 是否活着
@@ -994,10 +1005,12 @@
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):
- turnFight = self.GetTurnFight()
- batFaction = turnFight.getBatFaction(self.faction)
- return batFaction.getBatlineup(self.lineupNum)
+ def GetTFBatLineup(self):
+ if not self._batLineup:
+ turnFight = self.GetTurnFight()
+ batFaction = turnFight.getBatFaction(self.faction)
+ self._batLineup = batFaction.getBatlineup(self.lineupNum)
+ return self._batLineup
def GetOwnerID(self): return self.ownerID # 如果是玩家战斗单位,则该值非0,为所属玩家ID
def SetOwnerID(self, ownerID): self.ownerID = ownerID
def GetID(self): return self.objID
@@ -1030,6 +1043,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
--
Gitblit v1.8.0