From b7b26c834c51a76e419faacde84efcf5d6525f86 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 01 二月 2024 15:09:36 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(增加灵兽协同攻击支持;增加灵兽释放技能触发被动;增加精怪复活方式;被动触发的技能造成伤害改为不吸血;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py |   36 +++++++++++++++++++++++++++++-------
 1 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
index 1924a71..dd30895 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -49,7 +49,8 @@
 # 回合战斗复活类型
 (
 RebornType_PetSkill,
-) = range(1, 1 + 1)
+RebornType_ElfSkill,
+) = range(1, 1 + 2)
 
 def GetObjName(gameObj):
     objName = gameObj.GetName()
@@ -382,12 +383,16 @@
     NetPackCommon.SendFakePack(curPlayer, clientPack)
     return True
 
-def GetEnemyCureDefPer(gameObj):
-    ## 获取敌对方弱化治疗值
+def GetEnemyObj(gameObj):
+    ## 获取回合对手实例
     tagID = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnEnemyID)
     if not tagID:
-        return 0
-    tagObj = GameWorld.FindNPCByID(tagID)
+        return
+    return GameWorld.FindNPCByID(tagID)
+
+def GetEnemyCureDefPer(gameObj):
+    ## 获取敌对方弱化治疗值
+    tagObj = GetEnemyObj(gameObj)
     if not tagObj:
         return 0
     cureDefPer = GameObj.GetCureDefPer(tagObj)
@@ -410,7 +415,18 @@
     if curRebornCount >= rebornCountMax:
         GameWorld.DebugLog("%s 已经超过复活次数,不能再复活! curID=%s,curRebornCount=%s" % (GetObjName(gameObj), gameObj.GetID(), curRebornCount))
         return
-    
+                
+    # 自己技能  - 如精怪
+    skillManager = gameObj.GetSkillManager()
+    for skillIndex in range(skillManager.GetSkillCount()):
+        skill = skillManager.GetSkillByIndex(skillIndex)
+        if skill.GetSkillType() != ChConfig.Def_SkillType_Revive:
+            continue
+        if skill.GetRemainTime():
+            continue
+        if skill.GetFuncType() == ChConfig.Def_SkillFuncType_ElfSkill:
+            return RebornType_ElfSkill, skill
+        
     # 检查是否有灵宠复活技能
     for index in range(gameObj.GetSummonCount()):
         curSummonNPC = gameObj.GetSummonNPCAt(index)
@@ -449,6 +465,11 @@
         hpPer = skill.GetEffect(0).GetEffectValue(0)
         rebornValue1 = petNPC.GetID()
         rebornValue2 = skill.GetSkillID()
+    elif rebornType == RebornType_ElfSkill:
+        skill = rebornTypeInfo[1]
+        skill.SetRemainTime(skill.GetCoolDownTime())
+        hpPer = skill.GetEffect(0).GetEffectValue(0)
+        rebornValue1 = skill.GetSkillID()
         
     rebornCount = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnRebornCount) + 1
     gameObj.SetDict(ChConfig.Def_Obj_Dict_TurnRebornCount, rebornCount)
@@ -461,7 +482,8 @@
         gameObj.ChangeAction(IPY_GameWorld.laNPCNull)
         
     curHP = GameObj.GetHP(gameObj)
-    GameWorld.DebugLog("复活 %s: rebornType=%s,objID=%s,hpPer=%s,curHP=%s,rebornCount=%s" % (objName, rebornType, objID, hpPer, curHP, rebornCount))
+    GameWorld.DebugLog("复活 %s: rebornType=%s,objID=%s,hpPer=%s,curHP=%s,rebornCount=%s,rebornValue1=%s,rebornValue2=%s" 
+                       % (objName, rebornType, objID, hpPer, curHP, rebornCount, rebornValue1, rebornValue2))
     
     playerID = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightID)
     if not playerID:

--
Gitblit v1.8.0