From 31efa47c430874f95f4ff5503372f0cf6ecb53ae Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 04 十二月 2018 18:28:30 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 Fight/GameActor/GA_Hero.cs |  107 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 106 insertions(+), 1 deletions(-)

diff --git a/Fight/GameActor/GA_Hero.cs b/Fight/GameActor/GA_Hero.cs
index 7af5507..d5c58a6 100644
--- a/Fight/GameActor/GA_Hero.cs
+++ b/Fight/GameActor/GA_Hero.cs
@@ -164,6 +164,110 @@
         m_LastSyncTickTime = Time.realtimeSinceStartup;
     }
 
+    private PlayerSuitModel _suitModel;
+    private PlayerSuitModel SuitModel
+    {
+        get { return _suitModel ?? (_suitModel = ModelCenter.Instance.GetModel<PlayerSuitModel>()); }
+    }
+
+    private PlayerPackModel m_PlayerBackModel;
+    private PlayerPackModel PlayerBackModel
+    {
+        get
+        {
+            return m_PlayerBackModel ?? (m_PlayerBackModel = ModelCenter.Instance.GetModel<PlayerPackModel>());
+        }
+    }
+
+    public override void ChangeEquip(EquipInfo equipInfo)
+    {
+        var _equipModel = PlayerBackModel.GetSinglePackModel(PackType.rptEquip);
+
+        var _suitCount = 0;
+
+        int _start = (int)RoleEquipType.retHat;
+        int _end = (int)RoleEquipType.retShoes;
+        int _rank = 0;
+
+        ItemModel _itemModel = null;
+
+        // 鍏堝彇寰楄。鏈嶇殑闃舵暟
+        _itemModel = _equipModel.GetItemModelByIndex((int)RoleEquipType.retClothes);
+        if (_itemModel == null)
+        {
+            return;
+        }
+
+        _rank = _itemModel.chinItemModel.LV;
+
+        for (int i = _start; i <= _end; ++i)
+        {
+            _itemModel = _equipModel.GetItemModelByIndex(i);
+
+            if (_itemModel == null)
+            {
+                continue;
+            }
+
+            if (_itemModel.chinItemModel.SuiteiD <= 0)
+            {
+                continue;
+            }
+
+            if (SuitModel.suitModelDict.ContainsKey(i))
+            {
+                if (SuitModel.suitModelDict[i].ContainsKey(1)
+                 || SuitModel.suitModelDict[i].ContainsKey(2))
+                {
+                    if (_itemModel.chinItemModel.LV >= _rank)
+                    {
+                        _suitCount += 1;
+                    }
+                }
+            }
+        }
+
+        if (m_SuitCount == _suitCount)
+        {
+            return;
+        }
+
+        if (m_SuitCount < 5 && _suitCount < 5)
+        {
+            m_SuitCount = _suitCount;
+            return;
+        }
+
+        if (_suitCount == 5)
+        {
+            var _itemConfig = Config.Instance.Get<ItemConfig>((int)ClothesItemID);
+            if (_itemConfig != null)
+            {
+                var _newMat = MaterialLoader.LoadClothesMaterial(_itemConfig.ChangeOrd, false, true);
+                if (_newMat)
+                {
+                    m_SMRenderer.material = m_Material = _newMat;
+                    MaterialUtility.SwitchXrayShader(m_SMRenderer.material, this is GA_Hero);
+                }
+            }
+        }
+        else
+        {
+            var _itemConfig = Config.Instance.Get<ItemConfig>((int)ClothesItemID);
+            if (_itemConfig != null)
+            {
+                var _newMat = MaterialLoader.LoadClothesMaterial(_itemConfig.ChangeOrd, false, false);
+                if (_newMat)
+                {
+                    m_SMRenderer.material = m_Material = _newMat;
+                    MaterialUtility.SwitchXrayShader(m_SMRenderer.material, this is GA_Hero);
+                }
+            }
+        }
+
+        m_SuitCount = _suitCount;
+    }
+    
     protected sealed override void OnUnit()
     {
         Object.Destroy(m_BhvFindEnemy);
@@ -549,6 +653,7 @@
             && !IsStun()
             && !IsHurt()
             && !IsDaZuo()
+            && !IsCollect()
             && State != E_ActorState.Roll
             && State != E_ActorState.Mocked
             && !s_MapSwitching
@@ -890,7 +995,7 @@
         {
             yield break;
         }
-        yield return WaitingForSecondConst.WaitMS1500;    
+        yield return WaitingForSecondConst.WaitMS1500;
         if (PlayerDatas.Instance.extersion.bossState == 1)
         {
             yield break;

--
Gitblit v1.8.0