From 6180e24d340d7c4721046c9d433dcdb9778c0647 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 17 十二月 2025 12:06:01 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复复活可能导致的报错;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
index c41b9f9..9960ce5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
@@ -268,8 +268,16 @@
isRefreshAttr = True
if refreshType and buffSkill and buffOwner:
- TurnPassive.OnTriggerPassiveEffect(turnFight, buffOwner, ChConfig.TriggerWay_BuffAddByOwner, connSkill=buffSkill, connBuff=curBuff)
-
+ TurnPassive.OnTriggerPassiveEffect(turnFight, buffOwner, ChConfig.TriggerWay_BuffAddByOwner, tagObj=batObj, connSkill=buffSkill, connBuff=curBuff)
+ # 判断是否有额外属性的
+ if not isRefreshAttr:
+ effExDict = curBuff.GetEffectExDict()
+ for effCalcInfo in effExDict.keys():
+ effID = effCalcInfo[0]
+ if effID in ChConfig.AttrIDList:
+ isRefreshAttr = True
+ break
+
if isRefreshAttr:
RefreshBuffAttr(batObj)
@@ -491,7 +499,7 @@
isRefreshAttr = False
objID = batObj.GetID()
buffMgr = batObj.GetBuffManager()
- for index in range(buffMgr.GetBuffCount()):
+ for index in range(buffMgr.GetBuffCount())[::-1]:
buff = buffMgr.GetBuffByIndex(index)
buffID = buff.GetBuffID()
skillID = buff.GetSkillID()
@@ -537,10 +545,10 @@
objID = batObj.GetID()
- batAttrDict = batObj.ResetBattleEffect()
-
befHP = batObj.GetHP()
befMaxHP = batObj.GetMaxHP()
+
+ batAttrDict = batObj.ResetBattleEffect()
GameWorld.DebugLogEx("RefreshBuffAttr ID:%s,atk=%s,def=%s,hp=%s/%s,batAttrDict=%s",
objID, batObj.GetAtk(), batObj.GetDef(), befHP, befMaxHP, batAttrDict)
@@ -558,6 +566,9 @@
effID = effect.GetEffectID()
if effID not in ChConfig.AttrIDList:
continue
+ if effect.GetTriggerWay():
+ # 需要触发才有效的不算
+ continue
if effect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Skill]:
# 技能属性仅技能时有效
continue
--
Gitblit v1.8.0