From 985bdf70fd0022733f75bf2106e69c6de77c26b1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 28 十一月 2025 17:29:51 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(卑弥呼所有技能;技能表增加字段Buff保留-BuffRetain,支持死亡保留、复活保留;增加触发方式42-大回合开始时(死亡后有效);增加属性ID 73复活生命加成、74复活怒气加成;优化效果6014-支持失败次数额外概率;优化死亡、复活时的buff处理;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6014.py | 24 ++++++++++++++++++++++--
1 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6014.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6014.py
index 138239b..34f9b4d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6014.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6014.py
@@ -16,11 +16,13 @@
#-------------------------------------------------------------------------------
import GameWorld
+import ChConfig
def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
+ addRate = curEffect.GetEffectValue(0)
onlyFirstUse = curEffect.GetEffectValue(1) # 是否仅首次释放技能有效
+ skillID = connSkill.GetSkillID() if connSkill else skillkwargs.get("connSkillID", 0)
if onlyFirstUse:
- skillID = connSkill.GetSkillID() if connSkill else skillkwargs.get("connSkillID", 0)
if not skillID:
#GameWorld.DebugLog("没有增加概率的技能ID! %s" % skillkwargs)
return
@@ -28,4 +30,22 @@
if useCnt > 0:
GameWorld.DebugLog("技能非首次使用不增加额外概率! skillID=%s,useCnt=%s" % (skillID, useCnt))
return
- return curEffect.GetEffectValue(0)
+
+ failAddRateEx = curEffect.GetEffectValue(2) # 失败次数额外增加概率
+ if failAddRateEx:
+ failCnt = attacker.GetSkillHappenFailCnt(skillID)
+ mustHappenFailCnt = curEffect.GetEffectValue(3) # x次失败后必定释放,大于0有效
+ if mustHappenFailCnt and failCnt >= mustHappenFailCnt:
+ addRate = ChConfig.Def_MaxRateValue # 强制增加满概率
+ GameWorld.DebugLog("技能概率失败次数必定成功: mustHappenFailCnt=%s,failCnt=%s,addRate=%s" % (mustHappenFailCnt, failCnt, addRate))
+ elif failCnt > 0:
+ addRate = failAddRateEx * failCnt
+ GameWorld.DebugLog("技能概率失败次数增加概率: failAddRateEx=%s,failCnt=%s,addRate=%s" % (failAddRateEx, failCnt, addRate))
+
+ if effBuff:
+ buffLayer = effBuff.GetLayer()
+ if buffLayer > 1:
+ addRate *= buffLayer
+ GameWorld.DebugLog("多层buff增加技能概率! skillID=%s,buffLayer=%s,addRate=%s" % (effBuff.GetSkillID(), buffLayer, addRate))
+
+ return addRate
--
Gitblit v1.8.0