From 81fd2426b2f8ca34e07e9eaea1f3af54b0ae9527 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 21 一月 2026 10:16:42 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(命格技能玄武;增加效果7012;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py |    6 ++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py  |   10 +++++++---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py         |    1 +
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
index c5b6b38..c72aff2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
@@ -882,6 +882,12 @@
         curSkill = PySkill(ipyData, self._batObj.GetID())
         self._skillDict[skillID] = curSkill
         self._skillList.append(curSkill)
+        
+        learnSkillExEff = curSkill.GetEffectByID(ChConfig.SkillEff_LearnSkillEx)
+        if learnSkillExEff:
+            skillIDEx = learnSkillExEff.GetEffectValue(0)
+            if skillIDEx:
+                self.LearnSkillByID(skillIDEx)
         return curSkill
     
     def __deleteSkill(self, curSkill):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index d76dd34..5b0b0b8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4123,6 +4123,7 @@
 SkillEff_SkillUseCntLimit = 7009 # 限制技能最多触发次数
 SkillEff_UseSkillStealBuff = 7010 # 释放技能前偷取buff
 SkillEff_ReviveNoUse = 7011 # 没有复活目标时释放其他技能
+SkillEff_LearnSkillEx = 7012 # 额外学习技能(用于拆分完全独立的技能,视为已学习)
 
 (
 TriggerType_BeSuperHit, # 被暴击触发技能 1
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 135eb26..47f606b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -1569,6 +1569,10 @@
     
     # ========== 以下触发被动 ==========
     
+    curBatLineup = curObj.GetTFBatLineup()
+    curMGObj = curBatLineup.getMinggeObj()
+    mgTriggerWayList = [] # 命格本次技能已触发方式列表,命格固定只触发一次
+    
     # buff消失后置处理的被动,优先处理,如破盾,区别于被动方式  ChConfig.TriggerWay_BuffDel(立即触发)
     for buffObjID, buff, tagObjID, afterTriggerData in delBuffAfterEffList:
         triggerWay, effInfoList = afterTriggerData
@@ -1615,6 +1619,9 @@
         TurnBuff.DoBuffByRevive(turnFight, tagObj)
         TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_Revive, curObj, connSkill=useSkill)
         TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_InBattlefield, curObj, connSkill=useSkill)
+    if reviveObjList and curMGObj:
+        tagObj = reviveObjList[0]
+        TurnPassive.OnTriggerPassiveEffect(turnFight, curMGObj, ChConfig.TriggerWay_Revive, tagObj, connSkill=useSkill, byFriendObj=curObj)
         
     # 曹仁防护触发,暂写死
     for tagObj in caorenProtectList:
@@ -1633,9 +1640,6 @@
     triggerOne = False
     batType = useSkill.GetBatType()
     isAttackDirect = (isUseSkill and SkillCommon.isAttackDirectSkill(useSkill)) # 是否直接攻击
-    curBatLineup = curObj.GetTFBatLineup()
-    curMGObj = curBatLineup.getMinggeObj()
-    mgTriggerWayList = [] # 命格本次技能已触发方式列表,命格固定只触发一次
     for tagObj in tagObjListAll:
         tagID = tagObj.GetID()
         

--
Gitblit v1.8.0