From 3ce8b5df3f2994b94a7103636a7b720f1532fca7 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 25 九月 2025 18:00:54 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(司马微技能;增加效果6014-增加技能概率;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py                    |    4 ++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6014.py |   19 +++++++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py                      |    7 +++++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                             |    1 +
 4 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 390ea1a..91097da 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4322,6 +4322,7 @@
 PassiveEff_AddSkillPerByBuffLayer = 6011 # 增加本次技能万分比(根据buff层级)
 PassiveEff_AddBuffLayerMax = 6012 # 添加buff层级上限:  数值1-增加层级上限
 PassiveEff_AddFinalDamPer = 6013 # 增加最终增伤(根据属性转化)
+PassiveEff_AddSkillRate = 6014 # 增加技能概率
 
 # 被动效果ID有触发值时就返回的
 PassiveEffHappenValueList = [PassiveEff_ChangeHurtType, PassiveEff_ImmuneControlBuff, PassiveEff_MustSuperHit]
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
new file mode 100644
index 0000000..dbd7fc3
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6014.py
@@ -0,0 +1,19 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveTrigger.PassiveEff_6014
+#
+# @todo:增加技能概率
+# @author hxp
+# @date 2025-09-25
+# @version 1.0
+#
+# 详细描述: 增加技能概率
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2025-09-25 18:00"""
+#-------------------------------------------------------------------------------
+
+def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, **skillkwargs):
+    return curEffect.GetEffectValue(0)
\ No newline at end of file
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 fd3b51a..243507f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
@@ -108,7 +108,7 @@
     callFunc(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs)
     return
 
-def GetTriggerEffectValue(turnFight, atkObj, defObj, calcEffID, connSkill=None, **kwargs):
+def GetTriggerEffectValue(turnFight, atkObj, defObj, calcEffID, connSkill=None, connSkillTypeID=0, **kwargs):
     ''' 获取触发被动的值,一般用于某种条件下才会产生的值,如xx情况下属性变化 或 xx情况下是否发生什么
     @param calcEffID: 需要统计的效果ID,可以是属性ID或者其他自定义效果ID
     @return: 触发的值,0-没有触发或本身触发的值为0;非0-触发的具体值
@@ -116,7 +116,7 @@
     
     triggerWay = ChConfig.TriggerWay_CalcEffValue
     passiveEffMgr = atkObj.GetPassiveEffManager()
-    effInfoList = passiveEffMgr.GetPassiveEffByTrigger("%s_%s" % (triggerWay, calcEffID), connSkill)
+    effInfoList = passiveEffMgr.GetPassiveEffByTrigger("%s_%s" % (triggerWay, calcEffID), connSkill, connSkillTypeID)
     if not effInfoList:
         return 0
     
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 6078234..7e5c8a3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -73,7 +73,8 @@
     if not tagObjList:
         tagObjList = GetSkillTags(turnFight, curBatObj, useSkill)
         rate = useSkill.GetHappenRate()
-        if rate and rate != ChConfig.Def_MaxRateValue: 
+        if rate:
+            rate += TurnPassive.GetTriggerEffectValue(turnFight, curBatObj, None, ChConfig.PassiveEff_AddSkillRate, useSkill)
             for tagObj in tagObjList[::-1]:
                 if not GameWorld.CanHappen(rate, ChConfig.Def_MaxRateValue):
                     tagObjList.remove(tagObj)
@@ -992,6 +993,7 @@
         GameWorld.DebugLog("继承主技能目标! enhanceSkillID=%s" % enhanceSkillID)
         # 额外触发的技能直接在外层检查概率,如果都没有触发则不需要再处理
         enhanceRate = enhanceSkillData.GetHappenRate()
+        enhanceRate += TurnPassive.GetTriggerEffectValue(turnFight, curBatObj, None, ChConfig.PassiveEff_AddSkillRate, connSkillTypeID=enhanceSkillData.GetSkillTypeID())
         enchanceTagObjList = []
         for tagObj in tagObjList:
             tagID = tagObj.GetID()
@@ -1064,6 +1066,7 @@
     # 继承主技能目标
     if passiveSkill.GetTagAim() == ChConfig.SkillTagAim_MainSkill:
         happenRate = passiveSkill.GetHappenRate()
+        happenRate += TurnPassive.GetTriggerEffectValue(turnFight, batObj, None, ChConfig.PassiveEff_AddSkillRate, passiveSkill)
         GameWorld.DebugLog("被动触发技能,继承主技能目标! effSkillID=%s,effectID=%s,passiveSkillID=%s,happenRate=%s,bySkillID=%s" % (effSkillID, effectID, passiveSkillID, happenRate, bySkillID))
         if not tagObj:
             return
@@ -1071,7 +1074,7 @@
         if not tagObj.IsAlive():
             GameWorld.DebugLog("    已被击杀不触发: tagID=%s" % (tagID))
             return
-        if happenRate and happenRate != ChConfig.Def_MaxRateValue and not GameWorld.CanHappen(happenRate, ChConfig.Def_MaxRateValue):
+        if happenRate and not GameWorld.CanHappen(happenRate, ChConfig.Def_MaxRateValue):
             GameWorld.DebugLog("    概率不触发: tagID=%s,happenRate=%s" % (tagID, happenRate))
             return
         passiveTagObjList = [tagObj]

--
Gitblit v1.8.0