From 72c303f9f8819c6ab63eb5f00144d2872480ddc4 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 05 十二月 2018 17:53:51 +0800
Subject: [PATCH] 5257 子 【1.3】【1.3.100】数值优化 / 【后端】【1.3】【1.3.100】符印属性公式优化

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

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 2444a95..52a495c 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)
@@ -625,10 +631,10 @@
 # @param curNPC NPC实例
 # @param summonID 召唤兽的NPCID
 # @return 召唤兽数量
-def GetSummonCountByNPCID(curNPC, summonID):
+def GetSummonCountByNPCID(gameObj, summonID):
     count = 0
-    for i in range(0, curNPC.GetSummonCount()):
-        summonNPC = curNPC.GetSummonNPCAt(i)
+    for i in range(0, gameObj.GetSummonCount()):
+        summonNPC = gameObj.GetSummonNPCAt(i)
         
         if not summonNPC:
             continue
@@ -1200,6 +1206,11 @@
         GameWorld.Log('###技能伤害血量异常,数值错误 = %s,技能类型ID = %s' % (lostValue, skillTypeID))
         return
     
+    if not curObj.GetCanAttack():
+        # 无敌不掉血
+        ## 后续有其他情况也应考虑进来,如镖车是否某状态不掉血
+        return
+    
     #lostValue = GetGoblinLostHP(curObj, lostValue)
     curObjType = curObj.GetGameObjType()
     curSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID, 1)
@@ -1213,8 +1224,8 @@
     curObjHP_BeforeAttack = GameObj.GetHP(curObj)
     
     if reduceHP :
+        lostValue = AttackCommon.CalcAtkProDef(buffOwner, curObj, lostValue, curSkill, tick)
         # 血盾 
-
         lostValue = AttackCommon.CalcBloodShield(buffOwner, curObj, lostValue)
         
         #剩余血量
@@ -1246,7 +1257,7 @@
     
     #无法找到Buff拥有者
     if not buffOwner:
-        AttackCommon.DoLogic_ObjDead(curObj)
+        AttackCommon.DoLogic_ObjDead(None, curObj, curSkill, tick)
         return
         
     #NPC需要手动添加伤血和仇恨, 因为无调用DoAttack

--
Gitblit v1.8.0