From 0c96af08f55d05ab40eae9f940467dd8eafae44c Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 16 九月 2025 14:07:53 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(增加属性ID技能增伤65、技能减伤66;曹轶技能;被动触发增加属性支持;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py | 32 ++++++++++++++++++++++++++++---- 1 files changed, 28 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 8b7a961..e49c8f3 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py @@ -45,7 +45,7 @@ effList = [] # 优先取关联技能的 - if connSkillTypeID and connSkillTypeID not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_Buff]: + if connSkillTypeID and connSkillTypeID not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_Buff, ChConfig.TriggerSrc_SkillSelf, ChConfig.TriggerSrc_BuffSelf]: # 技能 key = (triggerWay, connSkillTypeID) if key in self._AffectSkillDict: @@ -99,13 +99,19 @@ return if triggerWay == ChConfig.TriggerWay_CurSkillEff: return - if triggerSrc == ChConfig.TriggerSrc_Buff: + if triggerSrc in [ChConfig.TriggerSrc_Buff, ChConfig.TriggerSrc_BuffSelf]: # buff有效的不加进来 return skillID = curSkill.GetSkillID() effectID = effect.GetEffectID() + if triggerWay == ChConfig.TriggerWay_CalcEffValue: + triggerWay = "%s_%s" % (triggerWay, effectID) + + if triggerSrc == ChConfig.TriggerSrc_SkillSelf: + triggerSrc = curSkill.GetSkillTypeID() + key = (triggerWay, triggerSrc) if key not in self._AffectSkillDict: self._AffectSkillDict[key] = {} @@ -143,13 +149,19 @@ return if triggerWay == ChConfig.TriggerWay_CurSkillEff: return - if triggerSrc == ChConfig.TriggerSrc_Skill: + if triggerSrc in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_SkillSelf]: # 技能有效的不加进来 return buffID = buff.GetBuffID() effectID = effect.GetEffectID() + if triggerWay == ChConfig.TriggerWay_CalcEffValue: + triggerWay = "%s_%s" % (triggerWay, effectID) + + if triggerSrc == ChConfig.TriggerSrc_BuffSelf: + triggerSrc = skillData.GetSkillTypeID() + key = (triggerWay, triggerSrc) if key not in self._AffectBuffDict: self._AffectBuffDict[key] = {} @@ -720,8 +732,20 @@ # return False return True - def IsInState(self, state): + def CheckInState(self, checkInState): ## 是否处于某种状态下 + if isinstance(checkInState, int): + checkInStateList = [checkInState] + elif isinstance(checkInState, list) or isinstance(checkInState, tuple): + checkInStateList = checkInState + else: + return False + for state in checkInStateList: + if self._buffMgr.IsInBuffState(state): + return True + return False + def IsInState(self, state): + ## 是否处于指定状态下 return self._buffMgr.IsInBuffState(state) def IsInControlled(self): -- Gitblit v1.8.0