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