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