From ec68dabc97521a7706344e7d038e9f08462f4fe8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 16 十二月 2025 10:26:34 +0800
Subject: [PATCH] 16 卡牌服务端(删除多余备档报错防范;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
index 9b56267..38f8ede 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -66,6 +66,8 @@
triggerWay = kwargs.get("triggerWay", 0)
if triggerWay in ChConfig.DeadCanTriggerWayList:
GameWorld.DebugLogEx("死亡可触发的方式触发技能可释放! skillID=%s,triggerWay=%s", skillID, triggerWay)
+ elif batType == ChConfig.TurnBattleType_Enhance:
+ GameWorld.DebugLogEx("死亡状态额外技能不限制,主技能能放的话也就能放! skillID=%s", skillID)
else:
GameWorld.DebugLogEx("死亡状态下无法释放该技能! skillID=%s", skillID)
return
@@ -845,8 +847,13 @@
calcCureResults = []
relativeObj = GetRelativeObj(turnFight, curBatObj)
+ multiValue = 1
+ addCureMulti = TurnPassive.GetTriggerEffectValue(turnFight, curBatObj, None, ChConfig.PassiveEff_AddCureMulti, useSkill)
+ if addCureMulti:
+ multiValue += addCureMulti / 100.0
+
for tagBatObj in useSkill.GetTagObjList():
- cureHP = CalcCureHP(turnFight, curBatObj, tagBatObj, useSkill, relativeObj=relativeObj)
+ cureHP = CalcCureHP(turnFight, curBatObj, tagBatObj, useSkill, relativeObj=relativeObj, multiValue=multiValue)
poisonCureOwner = GetPoisonCureOwner(tagBatObj)
calcCureResults.append([tagBatObj, cureHP, poisonCureOwner])
@@ -1313,9 +1320,7 @@
TurnAttack.SetObjKilled(turnFight, tagObj, curObj, useSkill)
useSkill.SetKillObjList(killObjList)
# 判断自己,因为反弹、平摊伤害的原因,有可能自己干死自己
- selfAlive = curObj.IsAlive()
- if selfAlive and curObj.GetHP() <= 0:
- selfAlive = False
+ if curObj.IsAlive() and curObj.GetHP() <= 0:
dieObjList.append(curObj)
TurnAttack.SetObjKilled(turnFight, curObj)
@@ -1390,7 +1395,7 @@
effIgnoreObjIDList = missObjIDList + immuneObjIDList
useSkill.SetEffIgnoreObjIDList(effIgnoreObjIDList)
# 优先触发本技能额外效果,注:仅该技能释放后该技能的额外效果视为主技能的效果,优先级最高
- if selfAlive:
+ if curObj not in dieObjList:
__DoCurSkillEff(turnFight, curObj, useSkill, effIgnoreObjIDList, isUseSkill)
# ========== 以下触发被动 ==========
@@ -2588,7 +2593,7 @@
TurnAttack.AddTurnObjCureHP(atkObj, atkObj, suckHP, cureHP)
return
-def CalcCureHP(turnFight, userObj, tagObj, curSkill, relativeObj=None):
+def CalcCureHP(turnFight, userObj, tagObj, curSkill, relativeObj=None, multiValue=1):
''' 计算治疗值
'''
@@ -2629,6 +2634,10 @@
cureHP += cureHPEx
GameWorld.DebugLogEx(" 额外治疗值(%s): cureType=%s,baseValue=%s,skillPer=%s,cureHP=%s", cureHPEx, cureType, baseValue, skillPer, cureHP)
+ if multiValue and multiValue != 1:
+ cureHP = int(cureHP * multiValue)
+ GameWorld.DebugLogEx(" 治疗倍值: cureHP=%s,multiValue=%s", cureHP, multiValue)
+
hurtShareEff = curSkill.GetEffectByID(ChConfig.SkillEff_HurtShare)
if hurtShareEff:
tagCnt = max(1, len(curSkill.GetTagObjList()))
--
Gitblit v1.8.0