From d0d6af30f0a6854b23ada340b5a618eb50c6f865 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 20 十月 2018 22:20:03 +0800
Subject: [PATCH] 2683 子 天赋技能和新增双职业各两个技能 / 【后端】天赋技能  -  buff层级变化触发技能,添加精灵召唤兽

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py |    9 +++++++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py        |    8 +++++---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py         |    5 ++++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                |    3 ++-
 4 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 72ae1e5..aa2729f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4320,7 +4320,8 @@
 TriggerType_OneDamage,   # 伤害降低到1点 49
 TriggerType_LuckyHit, # 会心一击时增加会心伤害百分比 50
 TriggerType_ChangeHurtToHP, # 把受到伤害的xx%转化为生命值 51
-) = range(1, 52)
+TriggerType_AddLayer, # BUFF层级增加时 52
+) = range(1, 53)
 
 
 # NPC功能类型定义
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
index 44d5afe..c826690 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -205,7 +205,10 @@
                     else:
                         curBuff.SetLayer(layerMaxCnt)
                     changeLayer = True
-            
+                    #BUFF层级变化触发被动
+                    if buffOwner:
+                        PassiveBuffEffMng.OnPassiveSkillTrigger(buffOwner, curObj, curSkill, ChConfig.TriggerType_AddLayer, tick)
+                    
             __BuffCanRemain(buffState, curBuff, i, resultTime, plusValueList, buffOwner)
             # 此处考虑下plusValue变强是否刷属性
             #DoAddBuffOver(curObj, curSkill, addBuff, tick)
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 4099682..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)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
index d1bdcc9..8fa3d9f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -3426,9 +3426,11 @@
 
     if skillAim == ChConfig.Def_UseSkillAim_None:
         if curSkill.GetSkillType() in ChConfig.Def_CanAttackSkill_List:
-            if target and target.GetGameObjType() == IPY_GameWorld.gotNPC and target.GetType() == IPY_GameWorld.ntElf:
-                # 有害技能特殊处理,不能对自己的召唤物释放
-                target = None
+            if target and target.GetGameObjType() == IPY_GameWorld.gotNPC and target.GetGameNPCObjType() == IPY_GameWorld.gnotSummon:
+                owner = NPCCommon.GetNpcObjOwnerDetail(target)
+                if owner and owner.GetID() == attacker.GetID():
+                    # 有害技能特殊处理,不能对自己的召唤物释放
+                    target = None
                 
             result = DoLogic_UseSkill(attacker, target, curSkill, tick, attacker.GetPosX(), attacker.GetPosY(), isEnhanceSkill=isEnhanceSkill)
         else:

--
Gitblit v1.8.0