From 666882e6e4f8bfbc698c21229d4bbd3f4a318738 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 22 六月 2019 16:59:25 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 - 改变技能特效
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py | 42 +++++++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py | 4 ++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4110.py | 26 +++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 3 +
4 files changed, 74 insertions(+), 1 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
index f705570..e700b1c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -1379,6 +1379,9 @@
#技能攻击
skillID = curSkill.GetSkillID()
+ changeSkillID = PassiveBuffEffMng.GetPassiveSkillValueByTriggerTypeEx(attacker, None, curSkill, ChConfig.TriggerType_ChangeSkillEff)
+ if changeSkillID:
+ skillID = changeSkillID
battleType = AttackCommon.GetBattleType(attacker, curSkill)
#无目标类技能
if not defender:
@@ -2757,6 +2760,7 @@
# ChangeAction(paAttack);
# m_LastBattleTick = GetGameWorldManager()->GetTick();
#===========================================================================
+
sendPack = ChNetSendPack.tagUseSkillPos()
sendPack.Clear()
sendPack.ObjID = attacker.GetID()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 2631cf6..babd797 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4482,7 +4482,8 @@
TriggerType_SkillSuccessExpend, # 使用技能成功后不触发技能 处理消耗等问题用 87
TriggerType_ThumpSkillValue, # 重击增加技能固定值伤害 88
TriggerType_HitValue, # 记录命中个数 89
-) = range(1, 90)
+TriggerType_ChangeSkillEff, # 改变技能特效广播 90
+) = range(1, 91)
#不可以佩戴翅膀的地图
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4110.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4110.py
new file mode 100644
index 0000000..796c2e7
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4110.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#
+##@package
+#
+# @todo: 攻击方的最大生命百分比转化为固定伤害值
+#
+# @author: Alee
+# @date 2019-6-18 下午09:24:04
+# @version 1.0
+#
+# @note:
+#
+#---------------------------------------------------------------------
+import ChConfig
+import GameObj
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+ return True
+
+
+def GetValue(attacker, defender, effect, skillTypeID):
+ if effect.GetEffectValue(1):
+ return effect.GetEffectValue(1)
+ return skillTypeID
+
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 51ee15f..d1f1edd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -405,6 +405,7 @@
4107:ChConfig.TriggerType_SkillValue, # 增加技能伤害固定值 82
4108:ChConfig.TriggerType_SkillSuccess, # 使用技能成功后不触发技能 处理消耗等问题用 87
4109:ChConfig.TriggerType_SkillValue, # 增加技能伤害固定值 82
+ 4110:ChConfig.TriggerType_ChangeSkillEff, # 改变技能特效
}
return tdict.get(effectID, -1)
#===========================================================================
@@ -1707,3 +1708,44 @@
return True
+# 被动技能改变值 无条件限制 纯取值
+def GetPassiveSkillValueByTriggerTypeEx(attacker, defender, connSkill, triggerType):
+ attacker = FindRealAttacker(attacker)
+ if not attacker:
+ return 0
+
+ passiveEff = GetPassiveEffManager().GetPassiveEff(attacker)
+ if not passiveEff:
+ return 0
+ connSkillID = connSkill.GetSkillTypeID() if connSkill else 0
+ skills = passiveEff.GetPassiveSkillsByTriggerType(triggerType, connSkill)
+ if not skills:
+ return 0
+
+ curValue = 0
+
+ for skillTypeID, effectID in skills:
+ if connSkillID == skillTypeID:
+ continue
+ curSkill = attacker.GetSkillManager().FindSkillBySkillTypeID(skillTypeID)
+ if not curSkill:
+ continue
+
+ effect = SkillCommon.GetSkillEffectByEffectID(curSkill, effectID)
+ if not effect:
+ continue
+ pyName = "PassiveSkill_%s" % effectID
+
+ callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "CheckCanHappen"))
+
+ # 条件不满足
+ if callFunc and not callFunc(attacker, defender, effect, curSkill):
+ continue
+
+ callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "GetValue"))
+ if callFunc is None:
+ continue
+
+ curValue += callFunc(attacker, defender, effect, skillTypeID)
+
+ return curValue
--
Gitblit v1.8.0