From ac36bdcfa7db1557790a5b912c3248b22625841f Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 26 十一月 2025 18:49:17 +0800
Subject: [PATCH] Merge branch 'master' of http://mobile.secondworld.net.cn:10010/r/Project_SG_ServerCode

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 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 88d7108..5323c9b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -1565,7 +1565,8 @@
     enhanceSkillID = curEffect.GetEffectValue(0)
     checkInStateList = curEffect.GetEffectValue(1)
     checkHeroJob = curEffect.GetEffectValue(2)
-    GameWorld.DebugLog("额外触发的技能: enhanceSkillID=%s,checkInStateList=%s,checkHeroJob=%s" % (enhanceSkillID, checkInStateList, checkHeroJob))
+    checkHeroSex = curEffect.GetEffectValue(3)
+    GameWorld.DebugLog("额外触发的技能: enhanceSkillID=%s,checkInStateList=%s,checkHeroJob=%s,checkHeroSex=%s" % (enhanceSkillID, checkInStateList, checkHeroJob, checkHeroSex))
     tagObjList = useSkill.GetTagObjList()
     
     enhanceSkillData = IpyGameDataPY.GetIpyGameData("Skill", enhanceSkillID)
@@ -1585,7 +1586,7 @@
         GameWorld.DebugLog("继承主技能目标! enhanceSkillID=%s" % enhanceSkillID)
         # 额外触发的技能直接在外层检查概率,如果都没有触发则不需要再处理
         enhanceRate = enhanceSkillData.GetHappenRate()
-        enhanceRate += TurnPassive.GetTriggerEffectValue(turnFight, curBatObj, None, ChConfig.PassiveEff_AddSkillRate, connSkillTypeID=enhanceSkillData.GetSkillTypeID())
+        enhanceRate += TurnPassive.GetTriggerEffectValue(turnFight, curBatObj, None, ChConfig.PassiveEff_AddSkillRate, connSkillTypeID=enhanceSkillData.GetSkillTypeID(), connSkillID=enhanceSkillID)
         enchanceTagObjList = []
         for tagObj in tagObjList:
             tagID = tagObj.GetID()
@@ -1602,6 +1603,9 @@
             if checkHeroJob and checkHeroJob != tagObj.GetJob():
                 GameWorld.DebugLog("    非目标职业不触发: tagID=%s,job=%s != %s" % (tagID, tagObj.GetJob(), checkHeroJob))
                 continue
+            if checkHeroSex and checkHeroSex != tagObj.GetSex():
+                GameWorld.DebugLog("    非目标性别不触发: tagID=%s,sex=%s != %s" % (tagID, tagObj.GetSex(), checkHeroSex))
+                continue
             if enhanceRate and enhanceRate != ChConfig.Def_MaxRateValue and not GameWorld.CanHappen(enhanceRate, ChConfig.Def_MaxRateValue):
                 GameWorld.DebugLog("    概率不触发: tagID=%s,enhanceRate=%s" % (tagID, enhanceRate))
                 continue
@@ -1615,8 +1619,8 @@
     
     # 只执行一次,防止群攻时额外触发多次
     GameWorld.DebugLog("重新锁定目标! enhanceSkillID=%s" % enhanceSkillID)
-    if checkInStateList or checkHeroJob:
-        inState, haveJob = False, False
+    if checkInStateList or checkHeroJob or checkHeroSex:
+        inState, haveJob, haveSex = False, False, False
         for tagObj in tagObjList:
             tagID = tagObj.GetID()
             if tagID in effIgnoreObjIDList:
@@ -1625,12 +1629,17 @@
                 inState = True
             if not haveJob and checkHeroJob and checkHeroJob == tagObj.GetJob():
                 haveJob = True
+            if not haveSex and checkHeroSex and checkHeroSex == tagObj.GetSex():
+                haveSex = True
         if checkInStateList and not inState:
             GameWorld.DebugLog("    没有命中目标在状态下不触发: tagObj not in state:%s" % str(checkInStateList))
             return
         if checkHeroJob and not haveJob:
             GameWorld.DebugLog("    没有命中目标为目标职业不触发: checkHeroJob=%s" % checkHeroJob)
             return
+        if checkHeroSex and not haveSex:
+            GameWorld.DebugLog("    没有命中目标为目标性别不触发: checkHeroSex=%s" % checkHeroSex)
+            return
     OnUseSkill(turnFight, curBatObj, enhanceSkillData, batType=ChConfig.TurnBattleType_Enhance, bySkill=useSkill)
     return
 

--
Gitblit v1.8.0