From 1a3ffe8f1c45c946d9a7286217107bf3e42d86d6 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 12 十一月 2018 21:39:28 +0800
Subject: [PATCH] 2683 子 天赋技能和新增双职业各两个技能 / 【后端】天赋技能 --- 天赋技能减CD,buff减层关联技能可触发
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py | 1 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py | 18 ++++++++++++++----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 8 +++++++-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4064.py | 21 +++++++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 3 ++-
5 files changed, 45 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index dca95dd..fdba3cf 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4366,7 +4366,8 @@
TriggerType_StormAttackReduceCD, # 类剑刃风暴攻击每攻击一次减少CD 58
TriggerType_AttackAddFinalPer, #增加最终伤害百分比 59
TriggerType_SummonDie, #自身召唤兽死亡触发技能 60
-) = range(1, 61)
+TriggerType_GiftReduceCD, # 天赋用的减CD 61
+) = range(1, 62)
# NPC功能类型定义
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
index 16ce277..1913474 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -99,6 +99,13 @@
coolDownTime = curSkill.GetCoolDownTime()
remainTime = coolDownTime
if isPassiveSkill(curSkill):
+ if curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill:
+ # 天赋有减CD效果
+ reduceSkillCDPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, None, curSkill, ChConfig.TriggerType_GiftReduceCD)
+ # 减CD比率
+ if reduceSkillCDPer > 0:
+ remainTime = int(remainTime * max(0, ShareDefine.Def_MaxRateValue - reduceSkillCDPer) / ShareDefine.Def_MaxRateValue)
+
# 被动技能的处理和主动技能区分
curSkill.SetRemainTime(remainTime)
return
@@ -108,7 +115,6 @@
# remainTime = skillData.GetCoolDownTime()
reduceSkillCDPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, None, curSkill, ChConfig.TriggerType_ReduceCD)
-
# 减CD比率
if reduceSkillCDPer > 0:
remainTime = int(remainTime * max(0, ShareDefine.Def_MaxRateValue - reduceSkillCDPer) / ShareDefine.Def_MaxRateValue)
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..f01be80 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,6 +19,20 @@
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
@@ -35,10 +49,6 @@
return False
if buff.GetLayer() <= 0:
- return False
-
- rate = passiveEffect.GetEffectValue(0)
- if rate and not GameWorld.CanHappen(rate):
return False
BuffSkill.SetBuffLayer(attacker, buff, buff.GetLayer()-1, skillTypeID=curSkill.GetSkillTypeID())
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4064.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4064.py
new file mode 100644
index 0000000..b103e95
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4064.py
@@ -0,0 +1,21 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#
+# @todo: 天赋减CD
+#
+# @author: Alee
+# @date 2018-1-9 下午09:39:37
+# @version 1.0
+#
+# @note:
+#
+#---------------------------------------------------------------------
+
+import ChConfig
+import GameObj
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+ return True
+
+def GetValue(attacker, defender, effect):
+ return effect.GetEffectValue(0)
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 eca9caa..4cac370 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -339,6 +339,7 @@
4061:ChConfig.TriggerType_AttackOverPassive, # 攻击(对敌技能)后被动技能被触发在其他被动效果处理后调用,触发顺序原因
4062:ChConfig.TriggerType_AttackAddFinalPer, # 增加最终伤害百分比 59
4063:ChConfig.TriggerType_SummonDie, #自身召唤兽死亡触发技能 60
+ 4064:ChConfig.TriggerType_GiftReduceCD, # 天赋减少CD9, #CD
}
return tdict.get(effectID, -1)
#===========================================================================
--
Gitblit v1.8.0