From b2c3652b5c42feaaaa0867c44662201db89d9e97 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 03 六月 2019 13:42:20 +0800
Subject: [PATCH] 6969 【2.0】【后端】缥缈仙域先随机再扣活跃

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py |   42 +++++++++++++++++++++++++-----------------
 1 files changed, 25 insertions(+), 17 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 d9243bb..b7ce734 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -974,20 +974,22 @@
         if not curTag:
             continue
         
-        if curSkillUseTag == ChConfig.Def_UseSkillTag_CanAttackNPC:
-            if NPCCommon.GetNpcObjOwnerIsPlayer(curTag):
-                #npc主人是玩家不能攻击
+        #非自定义场景才需要判断
+        if not attacker.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene):
+            if curSkillUseTag == ChConfig.Def_UseSkillTag_CanAttackNPC:
+                if NPCCommon.GetNpcObjOwnerIsPlayer(curTag):
+                    #npc主人是玩家不能攻击
+                    continue
+            
+            if GameWorld.GetDist(curTag.GetPosX(), curTag.GetPosY(), attacker.GetPosX(), attacker.GetPosY()) > attacker.GetSight():
+                # 最远距离防范
+                GameWorld.DebugLog("#--- 最远距离防范[%s-%s]"%(attacker.GetID(), curTag.GetID()))
                 continue
-    
-        if GameWorld.GetDist(curTag.GetPosX(), curTag.GetPosY(), attacker.GetPosX(), attacker.GetPosY()) > attacker.GetSight():
-            # 最远距离防范
-            GameWorld.DebugLog("#--- 最远距离防范[%s-%s]"%(attacker.GetID(), curTag.GetID()))
-            continue
-    
-        if CheckFunc != None:
-            #检查是否受影响
-            if not CheckFunc(attacker, curTag, curSkill, tick):
-                continue
+            
+            if CheckFunc != None:
+                #检查是否受影响
+                if not CheckFunc(attacker, curTag, curSkill, tick):
+                    continue
         
         resultList.append(curTag)
             
@@ -1093,6 +1095,9 @@
     
     #不在影响对象列表中
     if curObjType not in hurtTypeList:
+        return None, None
+    
+    if attacker.GetSightLevel() != curObj.GetSightLevel():
         return None, None
     
     #攻击对象
@@ -1550,7 +1555,7 @@
             return True
     return False
     
-
+### 不管什么技能都会到此处
 #只对第一目标造成某伤害类型时触发技能
 def OnHurtTypeTriggerSkillFirstObj(attacker, curSkill, tick):
     if g_skillHurtList.GetHurtCount() == 0:
@@ -1571,7 +1576,8 @@
     elif hurtType == ChConfig.Def_HurtType_ThumpHit:
         PassiveBuffEffMng.OnPassiveSkillTrigger(attacker, defender, curSkill, ChConfig.TriggerType_ThumpHit, tick)
     return
-    
+
+
 # 根据伤血类型触发技能,群攻只触发一次,放在伤血列表被清之前
 def OnHurtTypeTriggerSkill(attacker, target, curSkill, tick):
     usePassiveSkillResult = True    # 第一次判断不能调用,即代表都不可用无需循环
@@ -1643,8 +1649,6 @@
     
     # 根据伤血类型触发技能,群攻只触发一次,放在伤血列表被清之前
     OnHurtTypeTriggerSkill(attacker, defender, curSkill, tick)
-    #释放技能即可处理的 不区分攻击和非攻击
-    PassiveBuffEffMng.OnPassiveSkillTrigger(attacker, defender, curSkill, ChConfig.TriggerType_SkillSuccess, tick)
     
     # 普通或者可以主动释放的攻击性技能
     if not curSkill or (curSkill.GetSkillType() == ChConfig.Def_SkillType_Atk and\
@@ -1666,6 +1670,10 @@
     else:
         PassiveBuffEffMng.OnPassiveSkillTrigger(attacker, defender, curSkill, ChConfig.TriggerType_SkillOverNoAttack, tick)
     
+    #释放技能即可处理的 不区分攻击和非攻击
+    PassiveBuffEffMng.OnPassiveSkillTrigger(attacker, defender, curSkill, ChConfig.TriggerType_SkillSuccess, tick)
+    PassiveBuffEffMng.OnPassiveSkillTrigger(attacker, defender, curSkill, ChConfig.TriggerType_SkillSuccessExpend, tick)
+    
     return
 
 

--
Gitblit v1.8.0