From 17c0a15c9b306ab2fb7576ca99adbdf8e4e8285e Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 19 十一月 2018 16:37:51 +0800
Subject: [PATCH] 4715 【1.3】【后端】新的洗练副本-冰晶矿脉(新)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index b776166..07d6881 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1470,7 +1470,10 @@
if npcType == IPY_GameWorld.ntElf:
# ntElf 定义为人物使用对地持续性技能,并且人物可以移动,则需要ntElf做依托物的情况
# 那么ntElf执行人物的伤害计算和被动触发效果
- owner = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, attacker)
+ # 2018-11-16 Elf 支持主人为NPC
+ # owner = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, attacker)
+
+ owner = NPCCommon.GetSummonOwnerDetel(attacker)
return attacker if not owner else owner
return attacker
@@ -1507,7 +1510,7 @@
# 理论伤害一致, 多加点预算伤害避免计算误差
#hurtValue = min(ShareDefine.Def_UpperLimit_DWord, hurtValue+10)
#atkObj.SetDict(ChConfig.Def_PlayerKey_ClientMaxHurtValue, int(hurtValue*1.2))
- hurtValue = atkObj.GetMaxAtk()*atkSkillPer*10 + atkObj.GetSuperHit() # 加入被动计算不准确改成估算
+ hurtValue = atkObj.GetMaxAtk()*atkSkillPer*20 # 加入被动计算不准确改成估算
clientValue, hurtType = SkillShell.GetClientHurtByObj(defObj.GetID(), defObjType)
if clientValue <= hurtValue:
@@ -1531,15 +1534,16 @@
if absorbHurt <= defObj.GetDictByKey(ChConfig.Def_PlayerKey_AbsorbShieldMax):
maxValue = min(absorbHurt + absortValue, defObj.GetDictByKey(ChConfig.Def_PlayerKey_AbsorbShieldMax))
defObj.SetDict(ChConfig.Def_PlayerKey_AbsorbShield, maxValue) # 记录护盾吸收的伤害用于爆炸
-
+
# buff减少伤害百分比
reducePer = PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(defObj, atkObj, None, ChConfig.TriggerType_ReduceHurtHPPer)
+
# 被攻击被动技能特殊减免 受到单次伤害超过生命上限10%时候,减免50%伤害,CD10秒
defObj.SetDict(ChConfig.Def_PlayerKey_curHurtValue, hurtValue)
reducePer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_ReduceHurtHPPer)
hurtValue = int(hurtValue*(max(ChConfig.Def_MaxRateValue - reducePer, 0))*1.0/ChConfig.Def_MaxRateValue)
-
+
# 斩杀,濒死等情况的处理
if PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackKill):
# 斩杀
@@ -1562,7 +1566,6 @@
remainHP = min(dMaxHP, max(0, dHP - hurtValue)) # 剩余血量
remainHP = int(remainHP) #防范
-
if defObjType == IPY_GameWorld.gotPlayer:
GameObj.SetHP(defObj, remainHP, False)
@@ -1895,7 +1898,7 @@
return 0, ChConfig.Def_HurtType_Miss
hurtFormula = hurtDist[hurtFormulaKey]
hurtValue = int(eval(FormulaControl.GetCompileFormula(hurtFormulaKey, hurtFormula)))
-
+
if hurtType == ChConfig.Def_HurtType_Normal and SuppressValueRealmRate > 10000:
# 存在压制
return hurtValue, ChConfig.Def_HurtType_RealmSupress
--
Gitblit v1.8.0