From cc207773cbedb51c20300a87c62529ace416b086 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 19 九月 2025 19:23:35 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(无敌支持,免疫伤害、dot、控制;小怪技能;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py | 32 ++++++++++++++++++-------------- 1 files changed, 18 insertions(+), 14 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py index 9891021..f91000e 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py @@ -35,9 +35,7 @@ ''' 触发被动效果,可能触发技能、buff,需根据优先级触发 ''' passiveEffMgr = batObj.GetPassiveEffManager() - if not connSkillTypeID and connSkill: - connSkillTypeID = connSkill.GetSkillTypeID() - effInfoList = passiveEffMgr.GetPassiveEffByTrigger(triggerWay, connSkillTypeID) + effInfoList = passiveEffMgr.GetPassiveEffByTrigger(triggerWay, connSkill, connSkillTypeID) if not effInfoList: return # [["skill/buff", skillID/buffID, effIDList], ...] @@ -58,6 +56,8 @@ def __doTriggerPassiveEffectBySkill(turnFight, batObj, tagObj, triggerWay, skillID, effIDList, connSkill=None): skillMgr = batObj.GetSkillManager() effSkill = skillMgr.FindSkillByID(skillID) + if not effSkill and connSkill and connSkill.GetSkillID() == skillID: + effSkill = connSkill if not effSkill: return @@ -114,8 +114,7 @@ triggerWay = ChConfig.TriggerWay_CalcEffValue passiveEffMgr = atkObj.GetPassiveEffManager() - connSkillTypeID = connSkill.GetSkillTypeID() if connSkill else 0 - effInfoList = passiveEffMgr.GetPassiveEffByTrigger("%s_%s" % (triggerWay, calcEffID), connSkillTypeID) + effInfoList = passiveEffMgr.GetPassiveEffByTrigger("%s_%s" % (triggerWay, calcEffID), connSkill) if not effInfoList: return 0 @@ -130,6 +129,8 @@ if sign == "skill": skillID, effIDList = effInfo[1:] effSkill = skillMgr.FindSkillByID(skillID) + if not effSkill and connSkill and connSkill.GetSkillID() == skillID: + effSkill = connSkill elif sign == "buff": buffID, effIDList = effInfo[1:] effBuff = buffMgr.GetBuff(buffID) @@ -162,15 +163,18 @@ if value is None: continue - #if triggerType in TriggerValueMaxList: - # curValue = max(curValue, value) # 取最大值 - #elif triggerType in TriggerValueMinList: - # if not curValue: - # curValue = value - # elif value > 0: - # curValue = min(curValue, value) # 取最小值 - #else: - curValue += value + if effID in ChConfig.PassiveEffHappenValueList: + if value: + return value + elif effID in ChConfig.PassiveEffValueMaxList: + curValue = max(curValue, value) # 取最大值 + elif effID in ChConfig.PassiveEffValueMinList: + if not curValue: + curValue = value + elif value > 0: + curValue = min(curValue, value) # 取最小值 + else: + curValue += value #if skillTypeID not in Def_PassiveSkillValueNoCD: # if curSkill.GetCoolDownTime(): # SkillCommon.SetSkillRemainTime(curSkill, 0, tick, attacker) -- Gitblit v1.8.0