From 88788d95e6bdda152fe2d62bc853d892c39d6476 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期五, 10 八月 2018 20:49:13 +0800
Subject: [PATCH] fixed #2391 【前端】游戏性能优化 / 低效果屏蔽其他对象技能特效

---
 Fight/Actor/State/SMB/STM_BaseAttack.cs                                          |    5 ++
 Fight/Actor/Status/Status_Base.cs                                                |   20 ++++++++-
 Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs |   40 +++++++++++++------
 Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB401_tagMCSkillHurtList.cs   |   17 ++++++++
 4 files changed, 65 insertions(+), 17 deletions(-)

diff --git a/Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs b/Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs
index ab05453..a790e4f 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs
+++ b/Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs
@@ -60,30 +60,44 @@
             // 杩欓噷鎾斁閰嶇疆鐨勬妧鑳界壒鏁�
             if (_skill.skillInfo.config.EffectName > 0)
             {
-                if (_skill.warnPosList.Count > 1)
+                bool _playEffect = true;
+
+                if (vNetData.ObjID != PlayerDatas.Instance.PlayerId)
                 {
-                    for (int i = 0; i < _skill.warnPosList.Count; ++i)
+                    if (!_attacker.ShowOrHide
+                     || SystemSetting.Instance.GetCurrentQualityLevel() == GameQuality.Low)
                     {
-                        SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _skill.warnPosList[i], Vector3.forward);
+                        _playEffect = false;
                     }
                 }
-                else
+
+                if (_playEffect)
                 {
-                    if ((_skill.skillInfo.config.Tag % 10) == 0 || (_skill.skillInfo.config.Tag % 10) == 1 || _attacker is GActorNpcFight)
+                    if (_skill.warnPosList.Count > 1)
                     {
-                        SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _attacker);
+                        for (int i = 0; i < _skill.warnPosList.Count; ++i)
+                        {
+                            SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _skill.warnPosList[i], Vector3.forward);
+                        }
                     }
                     else
                     {
-                        Vector3 _pos = new Vector3((vNetData.PosX - GA_Hero.MapOffset.x) * .5f,
-                                        _attacker.Pos.y,
-                                        (vNetData.PosY - GA_Hero.MapOffset.z) * .5f);
+                        if ((_skill.skillInfo.config.Tag % 10) == 0 || (_skill.skillInfo.config.Tag % 10) == 1 || _attacker is GActorNpcFight)
+                        {
+                            SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _attacker);
+                        }
+                        else
+                        {
+                            Vector3 _pos = new Vector3((vNetData.PosX - GA_Hero.MapOffset.x) * .5f,
+                                            _attacker.Pos.y,
+                                            (vNetData.PosY - GA_Hero.MapOffset.z) * .5f);
 
-                        Vector3 _dir = MathUtility.ForwardXZ(_pos, _attacker.Pos);
+                            Vector3 _dir = MathUtility.ForwardXZ(_pos, _attacker.Pos);
 
-                        SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName,
-                                                                 _pos,
-                                                                 _dir);
+                            SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName,
+                                                                     _pos,
+                                                                     _dir);
+                        }
                     }
                 }
             }
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB401_tagMCSkillHurtList.cs b/Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB401_tagMCSkillHurtList.cs
index 7f319c7..d46e145 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB401_tagMCSkillHurtList.cs
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB401_tagMCSkillHurtList.cs
@@ -43,7 +43,22 @@
 
         if (_skill.skillInfo.config.EffectName != 0)
         {
-            SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _attacker);
+            bool _playEffect = true;
+
+            if (vNetData.ObjID != PlayerDatas.Instance.PlayerId)
+            {
+                if (!_attacker.ShowOrHide
+                 || SystemSetting.Instance.GetCurrentQualityLevel() == GameQuality.Low)
+                {
+                    _playEffect = false;
+                }
+
+            }
+
+            if (_playEffect)
+            {
+                SFXPlayUtility.Instance.PlayBattleEffect(_skill.skillInfo.config.EffectName, _attacker);
+            }
         }
 
         GActorFight _cTarget = null;
diff --git a/Fight/Actor/State/SMB/STM_BaseAttack.cs b/Fight/Actor/State/SMB/STM_BaseAttack.cs
index 84cd374..fa99d6f 100644
--- a/Fight/Actor/State/SMB/STM_BaseAttack.cs
+++ b/Fight/Actor/State/SMB/STM_BaseAttack.cs
@@ -927,6 +927,11 @@
             {
                 return;
             }
+
+            if (SystemSetting.Instance.GetCurrentQualityLevel() == GameQuality.Low)
+            {
+                return;
+            }
         }
 
         SFXController _controller = SFXPlayUtility.Instance.PlayBattleEffect(id, owner);
diff --git a/Fight/Actor/Status/Status_Base.cs b/Fight/Actor/Status/Status_Base.cs
index a715ea4..aed914b 100644
--- a/Fight/Actor/Status/Status_Base.cs
+++ b/Fight/Actor/Status/Status_Base.cs
@@ -41,10 +41,24 @@
                     SFXPlayUtility.Instance.Release(m_Effect);
                 }
 
-                m_Effect = SFXPlayUtility.Instance.PlayBattleEffect(m_SkillConfig.BuffEffectID, _target);
-                if (m_Effect)
+                bool _playEffect = true;
+
+                if (h0605.ObjID != PlayerDatas.Instance.PlayerId)
                 {
-                    m_Effect.m_OnFinished += OnEffectOver;
+                    if (!_target.ShowOrHide
+                     || SystemSetting.Instance.GetCurrentQualityLevel() == GameQuality.Low)
+                    {
+                        _playEffect = false;
+                    }
+                }
+
+                if (_playEffect)
+                {
+                    m_Effect = SFXPlayUtility.Instance.PlayBattleEffect(m_SkillConfig.BuffEffectID, _target);
+                    if (m_Effect)
+                    {
+                        m_Effect.m_OnFinished += OnEffectOver;
+                    }
                 }
             }
         }

--
Gitblit v1.8.0