Browse Source

配置表,掉装备bug修复

liao 4 months ago
parent
commit
0ecd0640e5

+ 15 - 15
Assets/Res/Config/DropItemConfig.json

@@ -296,9 +296,9 @@
       "itemID": [
         -10
       ],
-      "dropMinV": 2,
-      "dropMaxV": 2,
-      "dropCountGoupID": 0
+      "dropMinV": 1,
+      "dropMaxV": 1,
+      "dropCountGoupID": -1
     },
     {
       "ID": 42008,
@@ -306,9 +306,9 @@
       "itemID": [
         -5
       ],
-      "dropMinV": 3,
-      "dropMaxV": 3,
-      "dropCountGoupID": 1
+      "dropMinV": 1,
+      "dropMaxV": 1,
+      "dropCountGoupID": -1
     },
     {
       "ID": 42009,
@@ -316,9 +316,9 @@
       "itemID": [
         0
       ],
-      "dropMinV": 4,
-      "dropMaxV": 4,
-      "dropCountGoupID": 2
+      "dropMinV": 1,
+      "dropMaxV": 1,
+      "dropCountGoupID": -1
     },
     {
       "ID": 42010,
@@ -326,9 +326,9 @@
       "itemID": [
         5
       ],
-      "dropMinV": 5,
-      "dropMaxV": 5,
-      "dropCountGoupID": 3
+      "dropMinV": 1,
+      "dropMaxV": 1,
+      "dropCountGoupID": -1
     },
     {
       "ID": 42011,
@@ -336,9 +336,9 @@
       "itemID": [
         10
       ],
-      "dropMinV": 6,
-      "dropMaxV": 6,
-      "dropCountGoupID": 4
+      "dropMinV": 1,
+      "dropMaxV": 1,
+      "dropCountGoupID": -1
     }
   ]
 }

File diff suppressed because it is too large
+ 459 - 0
Assets/Res/Config/LevelBattleConfig.json


File diff suppressed because it is too large
+ 386 - 170
Assets/Scenes/UIBuild.scene


+ 15 - 1
Assets/Scripts/Core/Utility/GlobalParam.cs

@@ -1,6 +1,7 @@
 
 using System;
 using Fort23.UTool;
+using UnityEngine;
 
 namespace Core.Utility
 {
@@ -50,8 +51,21 @@ namespace Core.Utility
         /// </summary>
         public static int Hero_Promote_UI_BG_Star_Pos_2 = 150;
 
-        public static int GenerateEquipmentID(int zy, int eqType, int eqLv)
+        public static int GenerateEquipmentID(int zy, int eqType, int eqLv, int mainLv)
         {
+            if (mainLv <= 10)
+            {
+                eqLv = 10;
+            }
+            else
+            {
+                int tmp = 5 - mainLv % 5;
+                tmp = mainLv + tmp;
+                eqLv += tmp;
+            }
+            
+            Debug.Log("eqLevel=" + eqLv);
+            
             int equipmentConfigID = zy * 10000 + eqType * 1000 + eqLv;
             return equipmentConfigID;
         }

+ 8 - 2
Assets/Scripts/GameLogic/Bag/BagController.cs

@@ -143,7 +143,7 @@ namespace GameLogic.Bag
             for (int i = 0; i < m_bagList.Count; i++)
             {
                 ItemInfo item = m_bagList[i];
-                if (item.guid == itemInfo.guid)
+                if (!string.IsNullOrEmpty(item.guid) && item.guid == itemInfo.guid)
                 {
                     return item;
                 }
@@ -165,10 +165,16 @@ namespace GameLogic.Bag
         /// <returns></returns>
         private bool AddItem(ItemInfo item, long count)
         {
-            if (item.config.ID <= 0)
+            if (item.config.ID <= 0 && string.IsNullOrEmpty(item.guid))
             {
                 return false;
             }
+
+            // if (!string.IsNullOrEmpty(item.guid))
+            // {
+            //     
+            // }
+            
             item.count += count;
             EventManager.Instance.Dispatch(CustomEventType.ItemUpdate, new ItemUpdateData() {ItemInfo = item});
             AccountFileInfo.Instance.SaveItemData(item);

+ 8 - 0
Assets/Scripts/GameLogic/Bag/ItemInfo.cs

@@ -23,16 +23,23 @@ namespace GameLogic.Bag
         public ItemInfo(int ID, long count = 0)
         {
             this.ID = ID;
+            guid = ID.ToString();
             this.count = (EncryptionLong)count;
 
             config = ConfigComponent.Instance.Get<ItemConfig>(ID);
         }
 
+        public ItemInfo(DropItemConfig dropItemConfig)
+        {
+            this.dropItemConfig = dropItemConfig;
+        }
+
         public ItemInfo(AccountFileInfo.ItemData itemData)
         {
             ID = itemData.itemId;
             count = (EncryptionLong)itemData.itemCount;
             config = ConfigComponent.Instance.Get<ItemConfig>(ID);
+            guid = itemData.guid;
         }
 
         public AccountFileInfo.ItemData ToItemData()
@@ -41,6 +48,7 @@ namespace GameLogic.Bag
             {
                 itemId = ID,
                 itemCount = count.Value,
+                guid = guid
             };
         }
     }

+ 3 - 3
Assets/Scripts/GameLogic/Equipment/EquipmentController.cs

@@ -34,10 +34,10 @@ namespace GameLogic.Equipment
         /// </summary>
         /// <param name="quality"></param>
         /// <returns></returns>
-        public int GetEquipmentRarityAttributeFactor(int quality)
+        public float GetEquipmentRarityAttributeFactor(int quality)
         {
             int[] factors = PlayerManager.Instance.gameConstantConfig.equipmentRarityAttributeFactor;
-            return factors[quality - 1];
+            return factors[quality - 1] / (float)100;
         }
 
         
@@ -61,7 +61,7 @@ namespace GameLogic.Equipment
             // info.eqInfo.InitEquipment(info.config,
             //     lvDropItems[0].dropItemConfig.itemID[0], 
             //     qualityDropItems[0].dropItemConfig.itemID[0]);
-            info.eqInfo.InitEquipment(equipModelInfo, qualityDropItems[0], lvDropItems[0]);
+            info.eqInfo.InitEquipment(equipModelInfo, lvDropItems[0], qualityDropItems[0]);
             
             return info;
         }

+ 9 - 6
Assets/Scripts/GameLogic/Equipment/EquipmentInfo.cs

@@ -2,6 +2,7 @@
 using Core.Utility;
 using Excel2Json;
 using Fort23.UTool;
+using UnityEngine;
 using ItemInfo = GameLogic.Bag.ItemInfo;
 
 namespace GameLogic.Equipment
@@ -38,7 +39,7 @@ namespace GameLogic.Equipment
         public void InitEquipment(ItemInfo modelInfo, ItemInfo lvInfo, ItemInfo qualityInfo)
         {
             //有效性检查
-            if (modelInfo.dropItemConfig.dropItemType != 1 && 
+            if (//modelInfo.dropItemConfig.dropItemType != 1 && 
                 lvInfo.dropItemConfig.dropItemType != 3 &&
                 qualityInfo.dropItemConfig.dropItemType != 2)
             {
@@ -65,13 +66,15 @@ namespace GameLogic.Equipment
             this.quality = quality;
 
             // int equipmentConfigID = itemConfig.itemParam[0] * 10000 + itemConfig.itemParam[1] * 1000 + eLv;
+            
             int equipmentConfigID =
-                GlobalParam.GenerateEquipmentID(itemConfig.itemParam[0], itemConfig.itemParam[1], eLv);
+                GlobalParam.GenerateEquipmentID(itemConfig.itemParam[0], itemConfig.itemParam[1], eLv,
+                    PlayerManager.Instance.heroController.mainLevel);
             level = eLv;
             
             basicEquipConfig = ConfigComponent.Instance.Get<HeroBasicEquipConfig>(equipmentConfigID);
             // guid = GlobalParam.GenerateGUID();
-            myItemInfo.guid = itemConfig.ID.ToString() + eLv + quality;
+            myItemInfo.guid = itemConfig.ID.ToString() + basicEquipConfig.lv + quality;
             CalAtt();
         }
 
@@ -82,9 +85,9 @@ namespace GameLogic.Equipment
             for(int i=0; i < basicEquipConfig.AttType.Length; i++)
             {
                 int attTyp = basicEquipConfig.AttType[i];
-                int value = basicEquipConfig.AttValue[i] *
-                            PlayerManager.Instance.eqController.
-                                GetEquipmentRarityAttributeFactor(quality);
+                int value =  Mathf.RoundToInt( basicEquipConfig.AttValue[i] *
+                                               PlayerManager.Instance.eqController.
+                                                   GetEquipmentRarityAttributeFactor(quality));
                 switch (attTyp)
                 {
                     case 1:

+ 3 - 3
Assets/Scripts/GameLogic/Player/AccountFileInfo.cs

@@ -128,7 +128,7 @@ public class AccountFileInfo : Singleton<AccountFileInfo>
     /// <param name="itemInfo"></param>
     public void SaveItemData(ItemInfo itemInfo)
     {
-        if (itemInfo.ID == playerData.ItemListData[lastItemIdx].itemId)
+        if (itemInfo.guid == playerData.ItemListData[lastItemIdx].guid)
         {
             playerData.ItemListData[lastItemIdx] = itemInfo.ToItemData();
             SavePlayerData();
@@ -138,7 +138,7 @@ public class AccountFileInfo : Singleton<AccountFileInfo>
         for (int i = 0; i < playerData.ItemListData.Count; i++)
         {
             ItemData itemData = playerData.ItemListData[i];
-            if (itemData.itemId == itemInfo.ID)
+            if (itemData.guid == itemInfo.guid)
             {
                 playerData.ItemListData[i] = itemInfo.ToItemData();
                 //存下来,用于快速查找
@@ -280,7 +280,7 @@ public class AccountFileInfo : Singleton<AccountFileInfo>
     {
         public int itemId;
         public long itemCount;
-        public int guid;
+        public string guid;
     }
     
     /// <summary>

+ 14 - 5
Assets/Scripts/GameLogic/Player/DropManager.cs

@@ -52,7 +52,8 @@ namespace GameLogic.Player
                 int.Parse(eqDropData[1]),
                 int.Parse(eqDropData[2]));
 
-            BagController.Instance.AddEquipmentItem(eqItemInfo);
+            if(eqItemInfo != null)
+                BagController.Instance.AddEquipmentItem(eqItemInfo);
 
             return eqItemInfo;
         }
@@ -155,14 +156,22 @@ namespace GameLogic.Player
                         c = Random.Next(dropItemConfig.dropMinV, dropItemConfig.dropMaxV + 1);
                     }
 
-                    ItemInfo itemInfo = new ItemInfo(dropItemConfig.itemID[j], c);
 
-                    if (dropItemConfig.dropItemType != 1)
+                    ItemInfo itemInfo = null;
+
+                    if (dropItemConfig.dropItemType == 1)
                     {
-                        itemInfo.dropItemConfig = dropItemConfig;
+                        itemInfo = new ItemInfo(dropItemConfig.itemID[j], c);
                     }
-                    
+                    else
+                    {
+                        itemInfo = new ItemInfo(dropItemConfig);
+                    }
+
                     itemInfos.Add(itemInfo);
+                    
+                    
+                    
                 }
             }
         }

File diff suppressed because it is too large
+ 0 - 0
Assets/StreamingAssets/assetConfig.txt


BIN
Excel2Json/Excel/ChouKa.xlsx


BIN
Excel2Json/Excel/LevelBattle.xlsx


Some files were not shown because too many files changed in this diff