Преглед на файлове

穿戴套装战斗结束后,打开图鉴展示报错

zhaoyang преди 3 години
родител
ревизия
fadba0c426

+ 32 - 32
GameClient/Assets/Game/HotUpdate/Data/DressUpMenuSuitDataManager.cs

@@ -163,38 +163,38 @@ namespace GFGGame
                 GetSuitItemController.AddItemId(itemId);
             }
         }
-        //检测当前穿戴是否是一件完整套装,且只穿了一件套装,返回套装id
-        public static int CheckCurDressIsSuit()
-        {
-            if (EquipDataCache.cacher.suitId > 0) return EquipDataCache.cacher.suitId;
-
-            var equipDatas = EquipDataCache.cacher.equipDatas;
-            int dressSuitId = 0;
-            List<int> _equipDatas = new List<int>();
-            for (int i = 0; i < equipDatas.Count; i++)
-            {
-                if (DressUpMenuItemDataManager.CheckIsSceneType(equipDatas[i])) continue;
-                if (equipDatas[i] != ConstItemID.DEFULT_FA_XING && equipDatas[i] != ConstItemID.DEFULT_LIAN_YI_QUN && equipDatas[i] != ConstItemID.DEFULT_NEI_DA && equipDatas[i] != ConstItemID.DEFULT_XIA_ZHUANG)
-                {
-                    int suitId = SuitCfgManager.Instance.GetItemSuitId(equipDatas[i]);
-                    if (suitId <= 0) return 0;//有任何不属于套装的部件且不是原始服装,则当前穿戴不属于套装
-
-                    if (dressSuitId != 0 && dressSuitId != suitId) return 0;//当前穿戴不同套装的部件,则当前穿戴不属于套装
-                    dressSuitId = suitId;
-
-                    _equipDatas.Add(equipDatas[i]);
-                }
-            }
-            if (dressSuitId == 0) return dressSuitId;
-            int[] itemIds = SuitCfgManager.Instance.GetSuitItems(dressSuitId);
-            for (int i = 0; i < itemIds.Length; i++)
-            {
-                if (DressUpMenuItemDataManager.CheckIsSceneType(itemIds[i])) continue;
-                if (_equipDatas.IndexOf(itemIds[i]) < 0) return 0;//套装部件穿戴不完整
-            }
-
-            return dressSuitId;
-        }
+        // //检测当前穿戴是否是一件完整套装,且只穿了一件套装,返回套装id
+        // public static int CheckCurDressIsSuit()
+        // {
+        //     if (EquipDataCache.cacher.suitId > 0) return EquipDataCache.cacher.suitId;
+
+        //     var equipDatas = EquipDataCache.cacher.equipDatas;
+        //     int dressSuitId = 0;
+        //     List<int> _equipDatas = new List<int>();
+        //     for (int i = 0; i < equipDatas.Count; i++)
+        //     {
+        //         if (DressUpMenuItemDataManager.CheckIsSceneType(equipDatas[i])) continue;
+        //         if (equipDatas[i] != ConstItemID.DEFULT_FA_XING && equipDatas[i] != ConstItemID.DEFULT_LIAN_YI_QUN && equipDatas[i] != ConstItemID.DEFULT_NEI_DA && equipDatas[i] != ConstItemID.DEFULT_XIA_ZHUANG)
+        //         {
+        //             int suitId = SuitCfgManager.Instance.GetItemSuitId(equipDatas[i]);
+        //             if (suitId <= 0) return 0;//有任何不属于套装的部件且不是原始服装,则当前穿戴不属于套装
+
+        //             if (dressSuitId != 0 && dressSuitId != suitId) return 0;//当前穿戴不同套装的部件,则当前穿戴不属于套装
+        //             dressSuitId = suitId;
+
+        //             _equipDatas.Add(equipDatas[i]);
+        //         }
+        //     }
+        //     if (dressSuitId == 0) return dressSuitId;
+        //     int[] itemIds = SuitCfgManager.Instance.GetSuitItems(dressSuitId);
+        //     for (int i = 0; i < itemIds.Length; i++)
+        //     {
+        //         if (DressUpMenuItemDataManager.CheckIsSceneType(itemIds[i])) continue;
+        //         if (_equipDatas.IndexOf(itemIds[i]) < 0) return 0;//套装部件穿戴不完整
+        //     }
+
+        //     return dressSuitId;
+        // }
 
         public static List<int> GetSuitIDList()
         {

+ 37 - 6
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs

@@ -154,7 +154,7 @@ namespace GFGGame
                 DressUpUtil.AddItem(value, _sceneObj, _needSetMask);
                 score += DressUpMenuItemDataManager.GetItemScore(value);
             }
-            int dressSuitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit();
+            int dressSuitId = CheckCurDressIsSuit();
             if (dressSuitId > 0) _suitId = dressSuitId;
         }
 
@@ -171,7 +171,38 @@ namespace GFGGame
                 score -= DressUpMenuItemDataManager.GetItemScore(value);
             }
         }
+        //检测当前穿戴是否是一件完整套装,且只穿了一件套装,返回套装id
+        public int CheckCurDressIsSuit()
+        {
+            if (_suitId > 0) return _suitId;
 
+            // var equipDatas = _equipDatas;
+            int dressSuitId = 0;
+            List<int> _equipDatas = new List<int>();
+            for (int i = 0; i < _equipDatas.Count; i++)
+            {
+                if (DressUpMenuItemDataManager.CheckIsSceneType(_equipDatas[i])) continue;
+                if (_equipDatas[i] != ConstItemID.DEFULT_FA_XING && _equipDatas[i] != ConstItemID.DEFULT_LIAN_YI_QUN && _equipDatas[i] != ConstItemID.DEFULT_NEI_DA && _equipDatas[i] != ConstItemID.DEFULT_XIA_ZHUANG)
+                {
+                    int suitId = SuitCfgManager.Instance.GetItemSuitId(_equipDatas[i]);
+                    if (suitId <= 0) return 0;//有任何不属于套装的部件且不是原始服装,则当前穿戴不属于套装
+
+                    if (dressSuitId != 0 && dressSuitId != suitId) return 0;//当前穿戴不同套装的部件,则当前穿戴不属于套装
+                    dressSuitId = suitId;
+
+                    _equipDatas.Add(_equipDatas[i]);
+                }
+            }
+            if (dressSuitId == 0) return dressSuitId;
+            int[] itemIds = SuitCfgManager.Instance.GetSuitItems(dressSuitId);
+            for (int i = 0; i < itemIds.Length; i++)
+            {
+                if (DressUpMenuItemDataManager.CheckIsSceneType(itemIds[i])) continue;
+                if (_equipDatas.IndexOf(itemIds[i]) < 0) return 0;//套装部件穿戴不完整
+            }
+
+            return dressSuitId;
+        }
         /// <summary>
         /// 仅判断换装部件是否已穿着
         /// </summary>
@@ -295,13 +326,13 @@ namespace GFGGame
                 //是否有内搭
                 bool hasNeiDa = false;
                 //是否有上衣
-                 bool hasShangYi = false;
+                bool hasShangYi = false;
                 //是否有下装
                 bool hasXiaZhuang = false;
                 //是否有默认内搭
-                 bool hasNeiDaDefault = false;
+                bool hasNeiDaDefault = false;
                 //是否有默认下装
-                 bool hasXiaZhuangDefault = false;
+                bool hasXiaZhuangDefault = false;
                 for (int i = 0; i < _equipDatas.Count; i++)
                 {
                     int itemID = (int)_equipDatas[i];
@@ -341,7 +372,7 @@ namespace GFGGame
                 }
                 if (!hasLianYiQun)
                 {
-                    if(!hasShangYi && (!hasNeiDa || hasNeiDaDefault) && (!hasXiaZhuang || hasXiaZhuangDefault))
+                    if (!hasShangYi && (!hasNeiDa || hasNeiDaDefault) && (!hasXiaZhuang || hasXiaZhuangDefault))
                     {
                         Remove(ConstItemID.DEFULT_XIA_ZHUANG);
                         Remove(ConstItemID.DEFULT_NEI_DA);
@@ -358,7 +389,7 @@ namespace GFGGame
                             Add(ConstItemID.DEFULT_NEI_DA);
                         }
                     }
-                    
+
                 }
             }
         }

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs

@@ -394,7 +394,7 @@ namespace GFGGame
                     .SetRightButton(true, "好的");
                 return;
             }
-            int _suitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit(); ;
+            int _suitId = EquipDataCache.cacher.CheckCurDressIsSuit(); ;
             if (_fightCfg.needItemId > 0 && (_suitId <= 0 && EquipDataCache.cacher.equipDatas.IndexOf(_fightCfg.needItemId) < 0 || _suitId > 0 && Array.IndexOf(SuitCfgArray.Instance.GetCfg(_suitId).partsArr, _fightCfg.needItemId) < 0) || _fightCfg.needSuitId > 0 && _suitId != _fightCfg.needSuitId)
             {
                 AlertUI.Show("未穿戴必须品~").SetRightButton(true, "好的");
@@ -801,7 +801,7 @@ namespace GFGGame
         private void UpdateListPartsSelected()
         {
             int count = _ui.m_partsList.m_list.numChildren;
-            int suitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit();
+            int suitId = EquipDataCache.cacher.CheckCurDressIsSuit();
 
             for (int i = 0; i < count; i++)
             {
@@ -824,7 +824,7 @@ namespace GFGGame
         private void UpdateListSuitPartsSelected()
         {
             int count = _ui.m_partsList2.m_list.numChildren;
-            int suitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit();
+            int suitId = EquipDataCache.cacher.CheckCurDressIsSuit();
 
             for (int i = 0; i < count; i++)
             {

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs

@@ -677,7 +677,7 @@ namespace GFGGame
         private void UpdateListPartsSelected()
         {
             int count = _ui.m_partsList.m_list.numChildren;
-            int suitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit();
+            int suitId = EquipDataCache.cacher.CheckCurDressIsSuit();
 
             for (int i = 0; i < count; i++)
             {
@@ -702,7 +702,7 @@ namespace GFGGame
         private void UpdateListSuitPartsSelected()
         {
             int count = _ui.m_partsList2.m_list.numChildren;
-            int suitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit();
+            int suitId = EquipDataCache.cacher.CheckCurDressIsSuit();
             for (int i = 0; i < count; i++)
             {
                 UI_PartsListItem listItem = UI_PartsListItem.Proxy(_ui.m_partsList2.m_list.GetChildAt(i));