From a9f55b1be431e71c9be021f7484c2e45e34b9586 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 22 十二月 2023 18:12:19 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(NPC战斗属性统一放到NPC扩展表;每回合开始处理减技能CD、buff持续时间、刷新buff,每回合等同于常规时间1秒;NPC支持击晕;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py |   44 +++++++++++++++++++++++---------------------
 1 files changed, 23 insertions(+), 21 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 072738d..2472fe5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -1697,40 +1697,42 @@
 
 # 属性击晕
 def AttackFaintRate(attacker, defender, curSkill, tick):
-    if attacker.GetGameObjType() != IPY_GameWorld.gotPlayer:
-        return
+    #if attacker.GetGameObjType() != IPY_GameWorld.gotPlayer:
+    #    return
     
     faintRate = GameObj.GetFaintRate(attacker)
     if not faintRate:
         #GameWorld.DebugLog("没有击晕概率!", attacker.GetID())
         return
     
-    if curSkill:
-        useSkillData = attacker.GetUseSkill()
-        # 非主动性技能不触发
-        if not useSkillData:
-            return
-        if useSkillData.GetSkillID() != curSkill.GetSkillID():
-            return
-        
-    if not defender:
-        useSkillTagID = attacker.GetUseSkillTagID()
-        useSkillTagType = attacker.GetUseSkillTagType()
-        defender = GameWorld.GetObj(useSkillTagID, useSkillTagType)
+    if attacker.GetGameObjType() == IPY_GameWorld.gotPlayer:
+        if curSkill:
+            useSkillData = attacker.GetUseSkill()
+            # 非主动性技能不触发
+            if not useSkillData:
+                return
+            if useSkillData.GetSkillID() != curSkill.GetSkillID():
+                return
+            
         if not defender:
-            return
+            useSkillTagID = attacker.GetUseSkillTagID()
+            useSkillTagType = attacker.GetUseSkillTagType()
+            defender = GameWorld.GetObj(useSkillTagID, useSkillTagType)
+            
+    if not defender:
+        return
     
     if attacker.GetID() == defender.GetID():
         return
-
+    
     if GameObj.GetHP(defender) <= 0:
         return
-
-    tagFaintRate = GameObj.GetFaintDefRate(defender) if defender.GetGameObjType() == IPY_GameWorld.gotPlayer else 0
-
+    
+    tagFaintDefRate = GameObj.GetFaintDefRate(defender)
+    
     # 添加最高60%击晕效果
     maxRate = IpyGameDataPY.GetFuncCfg("PassiveSkillFaint", 1)
-    rate = min(max(faintRate - tagFaintRate, 0), maxRate)
+    rate = min(max(faintRate - tagFaintDefRate, 0), maxRate)
     if not GameWorld.CanHappen(rate):
         return
     
@@ -1742,7 +1744,7 @@
             GameWorld.DebugLog("击晕CD中! rate=%s,剩余tick=%s" % (rate, remainTick), attacker.GetID())
             return
         attacker.SetDict(ChConfig.Def_PlayerKey_AttrFaintCD, tick)
-        GameWorld.DebugLog("触发击晕! rate=%s" % rate, attacker.GetID())
+        GameWorld.DebugLog("触发击晕! rate=%s,tagID=%s" % (rate, defender.GetID()), attacker.GetID())
         
     SkillCommon.AddBuffBySkillType(defender, ChConfig.Def_SkillID_AtkerFaint, tick)
     return

--
Gitblit v1.8.0