From 8a3b39e2b66ab9f7d1f1ac65082980d1de8a9582 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 31 十月 2018 14:52:30 +0800
Subject: [PATCH] 4498 【后端】【1.2.0】增加【助战特定副本】的任务接口

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
index 845061b..3b3543c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -816,6 +816,11 @@
         
     return True
 
+
+#ntSummon:(3)普通召唤兽,可继承主人基础属性如攻击 
+#ntElf:(4)玩家替身,完全拥有玩家属性和被动功能
+#ntFairy :(7)同ntSummon,但技能可触发被动功能
+
 # ntElf 定义为人物使用对地持续性技能,并且人物可以移动,则需要ntElf做依托物的情况
 # 那么ntElf执行人物的伤害计算和被动触发效果
 # 被动技能只处理玩家,宠物,和灵
@@ -825,7 +830,7 @@
         return attacker
     
     npcType = attacker.GetType()
-    if npcType not in [IPY_GameWorld.ntPet, IPY_GameWorld.ntElf]:
+    if npcType not in [IPY_GameWorld.ntPet, IPY_GameWorld.ntElf, IPY_GameWorld.ntFairy]:
         if attacker.GetIsBoss():
             return attacker
         return
@@ -834,7 +839,7 @@
         # --宠物
         return attacker
     
-    if npcType == IPY_GameWorld.ntElf:
+    else:
         # ntElf 定义为人物使用对地持续性技能,并且人物可以移动,则需要ntElf做依托物的情况
         # 那么ntElf执行人物的伤害计算和被动触发效果
         attacker = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, attacker)
@@ -1135,21 +1140,25 @@
         if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_Dogz:
             continue
         skillID = curSkill.GetSkillID()
-        if skillID in dogzSkills:
-            dogzSkills.pop(skillID)
-            continue
         
         delDogzSkills.append(skillID)
         
     GameWorld.DebugLog("PlayerDogzSkill:%s - 删除%s"%(dogzSkills, delDogzSkills))
     
-    # 删除非助战技能
+    # 删除神兽技能
     for skillID in delDogzSkills:
         skillManager.DeleteSkillBySkillID(skillID, False)
     
     # 添加助战技能,同类技能取最高
     dogzSkills.sort()
     for skillID in dogzSkills:
+        skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID)
+        if not skillData:
+            continue
+        if skillData.GetSkillType() == ChConfig.Def_SkillType_AttrSkillNoLearn:
+            # 同技能可多个叠加的技能不能学,算属性时直接取表
+            continue
+        
         skillManager.LearnSkillByID(skillID, False)
     
     # 刷被动效果

--
Gitblit v1.8.0