From 1deb0b9086974c1205cddee149b88b6974d35ecd Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 26 十二月 2018 13:59:21 +0800
Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(删除旧跨服无用代码)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 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 630dfbb..dae7c55 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
@@ -1833,7 +1833,9 @@
     if isLuckyHit:
         # 会心一击时增加会心伤害百分比 
         aLuckyHit += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_LuckyHit)
-
+        aLuckyHit -= PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_BeLuckyHitSubPer)
+        aLuckyHit = max(aLuckyHit, 0)
+        
     #参与运算的数值
     rand = random.random()                #种子数 0~1
     
@@ -1875,13 +1877,14 @@
         
     else:
         aIgnoreDefRate = 0  # 无视防御比率
+        aFinalHurtPer = GameObj.GetPetDamPer(atkObj) # 最外层伤害加成, 可能为负值
         aSkillAtkRate = NPCCommon.GetSkillAtkRate(atkObj)   # 技能攻击力加成
         if atkObjType == IPY_GameWorld.gotNPC and atkObj.GetGameNPCObjType() == IPY_GameWorld.gnotPet:
             aSkillAtkRate += atkObj.GetSkillAtkRate()
+            
         aNPCHurtAddPer = 0  # PVE伤害加成
         aDamagePer = 0      # 外层伤害加成
         aDamagePerPVP = 0   # 外层PVP伤害加成
-        aFinalHurtPer = 0 # 最外层伤害加成, 可能为负值
         aFinalHurt = NPCCommon.GetFinalHurt(atkObj) # 最终固定伤害
         aFightPower = NPCCommon.GetSuppressFightPower(atkObj)
         
@@ -1960,10 +1963,22 @@
             suppressFormulaKeyRealm = "PVESuppressValueRealm"
             if suppressFormulaKeyRealm in hurtDist:
                 SuppressValueRealmRate = int(eval(FormulaControl.GetCompileFormula(suppressFormulaKeyRealm, hurtDist[suppressFormulaKeyRealm])))
+        
+        
+    # 骑宠争夺最终伤害衰减           
+    if defObjType == IPY_GameWorld.gotNPC and FamilyRobBoss.IsHorsePetRobBoss(defObj.GetNPCID()):
+        ownerPlayer = None
+        # 召唤兽和宠物需要从人物获取状态
+        if atkObj.GetGameObjType() == IPY_GameWorld.gotNPC:
+            if atkObj.GetGameNPCObjType() == IPY_GameWorld.gnotPet:
+                ownerPlayer = PetControl.GetPetOwner(atkObj)
+            elif atkObj.GetGameNPCObjType() == IPY_GameWorld.gnotSummon:
+                ownerPlayer = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, atkObj)
+        else:
+            ownerPlayer = atkObj
             
-        # 骑宠争夺最终伤害衰减           
-        if FamilyRobBoss.IsHorsePetRobBoss(defObj.GetNPCID()):
-            findBuff = SkillCommon.FindBuffByID(atkObj, ChConfig.Def_SkillID_HorsePetRobBossKillCntBuff)[0]
+        if ownerPlayer:
+            findBuff = SkillCommon.FindBuffByID(ownerPlayer, ChConfig.Def_SkillID_HorsePetRobBossKillCntBuff)[0]
             if findBuff:
                 reduceFinalHurtPer = findBuff.GetSkill().GetEffect(0).GetEffectValue(0)
                 aFinalHurtPer -= reduceFinalHurtPer
@@ -2068,6 +2083,12 @@
     if objType == IPY_GameWorld.gotPlayer:
         return "P"
     
+    if objType == IPY_GameWorld.gotNPC:
+        if obj.GetType() == ChConfig.ntRobot:
+            return "Robot"
+        if obj.GetType() == ChConfig.ntHelpBattleRobot:
+            return "HelpRobot"
+        
     objType = obj.GetGameNPCObjType()
     if objType == IPY_GameWorld.gnotPet:
         return "Pet"

--
Gitblit v1.8.0