From 531ef1778441b79979e3d5c9367a53f407a0c604 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期一, 27 八月 2018 19:13:35 +0800 Subject: [PATCH] fix:#1721 【BUG】娲皇遗迹,未获得奖励时,副本时间到,扣了次数 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 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 926c040..0708705 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 @@ -1580,6 +1580,7 @@ dMissSuccessRate += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_MissSuccessPer) skillID = curSkill.GetSkillID() if curSkill else 0 + atkIsBoss = 0 # 攻击方是否boss suppressValueLV = 0 # 等级最终压制值, 由压制规则及相关参数计算得出,可作为伤害公式计算参数使用 suppressValueFP = 0 # 战力最终压制值, 由压制规则及相关参数计算得出,可作为伤害公式计算参数使用 @@ -1588,6 +1589,13 @@ suppressNPCFightPower = 0 # 压制NPC战力 #当攻击方为NPC,防守方为玩家时,计算压制等级 及 压制战力 if atkObjType == IPY_GameWorld.gotNPC and defObjType == IPY_GameWorld.gotPlayer: + + if curSkill and curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_RealmSuppress: + # 境界压制技能不对高等级境界玩家产生攻击 + aRealmLV, dRealmLV = GetPVERealmLVs(atkObj, defObj, atkObjType, defObjType) + if aRealmLV <= dRealmLV: + return 0, ChConfig.Def_HurtType_Immune # 免疫 + atkIsBoss = 1 if ChConfig.IsGameBoss(atkObj) else 0 if NPCCommon.GetIsLVSuppress(atkObj): suppressLV = max(0, aLV - dLV) @@ -1660,6 +1668,7 @@ #------- 攻击方 aMinAtk = atkObj.GetMinAtk() # 攻击方最小攻击 aMaxAtk = atkObj.GetMaxAtk() # 攻击方最大攻击 + aIceAtk = atkObj.GetIceAtk() # 冰攻, 元素真伤, 玩家及NPC通用 aIceAtk += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddIceAtk) #------- 防守方 @@ -1680,6 +1689,7 @@ aDamagePer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer) aDamagePerPVP = PlayerControl.GetDamagePerPVP(atkObj) # 外层PVP伤害加成 + aFinalHurtPer = PlayerControl.GetFinalHurtPer(atkObj) # 最外层伤害加成 aFinalHurt = PlayerControl.GetFinalHurt(atkObj) # 最终固定伤害 # 被动增加最终伤害 aFinalHurt += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddFinalValue) @@ -1695,9 +1705,9 @@ aSkillAtkRate += atkObj.GetSkillAtkRate() aDamagePer = 0 # 外层伤害加成 aDamagePerPVP = 0 # 外层PVP伤害加成 + aFinalHurtPer = 0 # 最外层伤害加成 aFinalHurt = NPCCommon.GetFinalHurt(atkObj) # 最终固定伤害 aFightPower = NPCCommon.GetSuppressFightPower(atkObj) - #防守方的类型 if defObjType == IPY_GameWorld.gotPlayer: @@ -1734,7 +1744,7 @@ suppressFPFormula = hurtDist[suppressFormulaKeyFP] suppressValueFP = eval(FormulaControl.GetCompileFormula(suppressFormulaKeyFP, suppressFPFormula)) - # 境界压制百分比, 仅限PVP + # 境界压制百分比 SuppressValueRealmRate = 10000 # 默认值 suppressRealm = 0 if atkObjType == IPY_GameWorld.gotPlayer and defObjType == IPY_GameWorld.gotPlayer: @@ -1789,6 +1799,10 @@ 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 + return hurtValue, hurtType -- Gitblit v1.8.0