From c96e8ed5c248f3ff2edbee5f4a7d332b0e153a1e Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 05 十二月 2018 14:31:31 +0800
Subject: [PATCH] 5183 仙盟BOSS开启输出
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py | 32 +++++++++++++++++++++-----------
1 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py
index fdd6126..ab1c352 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py
@@ -19,16 +19,30 @@
import IPY_GameWorld
def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
+ # 先判断概率
+ rate = passiveEffect.GetEffectValue(0)
+ if rate and not GameWorld.CanHappen(rate):
+ return False
+
+ # 关联技能
+ checkSkillID = passiveEffect.GetEffectValue(2)
+ if checkSkillID:
+ useSkill = skillkwargs.get("useSkill", None)
+ if not useSkill:
+ return False
+ if useSkill.GetSkillTypeID() != checkSkillID:
+ return False
+
curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
if not curSkill:
return False
-
+
buffType = SkillCommon.GetBuffType(curSkill)
buffTuple = SkillCommon.GetBuffManagerByBuffType(attacker, buffType)
#通过类型获取目标的buff管理器为空,则跳出
if buffTuple == ():
return False
-
+
buffManager = buffTuple[0]
buff = buffManager.FindBuff(curSkill.GetSkillTypeID())
if not buff:
@@ -36,23 +50,19 @@
if buff.GetLayer() <= 0:
return False
-
- rate = passiveEffect.GetEffectValue(0)
- if rate and not GameWorld.CanHappen(rate):
- return False
+ triggerSkillID = passiveEffect.GetEffectValue(1)
BuffSkill.SetBuffLayer(attacker, buff, buff.GetLayer()-1, skillTypeID=curSkill.GetSkillTypeID())
- triggerSkillID = passiveEffect.GetEffectValue(1)
if triggerSkillID and attacker.GetGameObjType() == IPY_GameWorld.gotPlayer:
skillManager = attacker.GetSkillManager()
#获得技能
- curSkill = skillManager.FindSkillBySkillTypeID(triggerSkillID)
- if curSkill:
+ triggerSkill = skillManager.FindSkillBySkillTypeID(triggerSkillID)
+ if triggerSkill:
#玩家技能会升级
- SkillShell.UsePassiveTriggerSkill(attacker, curSkill, defender, GameWorld.GetGameWorld().GetTick(), isEnhanceSkill = True)
+ SkillShell.UsePassiveTriggerSkill(attacker, triggerSkill, defender, GameWorld.GetGameWorld().GetTick(), isEnhanceSkill = True)
else:
- triggerSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
+ triggerSkill = GameWorld.GetGameData().GetSkillBySkillID(triggerSkillID)
if triggerSkill:
SkillShell.UsePassiveTriggerSkill(attacker, triggerSkill, defender, GameWorld.GetGameWorld().GetTick(), isEnhanceSkill = True)
return True
--
Gitblit v1.8.0