From 72e48dde8a913569a8392094d12c44cd48881e1d Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 17 十一月 2025 14:27:40 +0800
Subject: [PATCH] 0312 战力计算增加竞技增减伤系数,装备拾取改存guid避免检测过于频繁用索引容易混乱

---
 Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs  |    4 ++--
 Main/System/Equip/EquipModel.cs                                               |   19 +++++++++++++++----
 Main/Config/Configs/FightPowerRatioConfig.cs                                  |    8 +++++++-
 Main/System/Main/FightPowerManager.cs                                         |    2 ++
 Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs |    4 ++--
 5 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/Main/Config/Configs/FightPowerRatioConfig.cs b/Main/Config/Configs/FightPowerRatioConfig.cs
index 39e72f3..d430c62 100644
--- a/Main/Config/Configs/FightPowerRatioConfig.cs
+++ b/Main/Config/Configs/FightPowerRatioConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           Friday, August 22, 2025
+//    [  Date ]:           2025骞�11鏈�17鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -58,6 +58,8 @@
 	public float WuFinalDamPerDefRatio;
 	public float QunFinalDamPerRatio;
 	public float QunFinalDamPerDefRatio;
+	public float ArenaDamPerRatio;
+	public float ArenaDamPerDefRatio;
 
     public override int LoadKey(string _key)
     {
@@ -152,6 +154,10 @@
 			float.TryParse(tables[40],out QunFinalDamPerRatio); 
 
 			float.TryParse(tables[41],out QunFinalDamPerDefRatio); 
+
+			float.TryParse(tables[42],out ArenaDamPerRatio); 
+
+			float.TryParse(tables[43],out ArenaDamPerDefRatio); 
         }
         catch (Exception exception)
         {
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs
index a8a5c92..dac6372 100644
--- a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB203_tagCSHorseSkinOP.cs
@@ -5,7 +5,7 @@
 
 public class CB203_tagCSHorseSkinOP : GameNetPackBasic {
     public byte OPType;    // 鎿嶄綔 1-婵�娲伙紱2-浣╂埓锛�3-鍗囨槦
-    public byte SkinID;    // 澶栬ID锛屼僵鎴存椂鍙�0鍗充负鍗镐笅
+    public ushort SkinID;    // 澶栬ID锛屼僵鎴存椂鍙�0鍗充负鍗镐笅
 
     public CB203_tagCSHorseSkinOP () {
         combineCmd = (ushort)0x03FE;
@@ -14,7 +14,7 @@
 
     public override void WriteToBytes () {
         WriteBytes (OPType, NetDataType.BYTE);
-        WriteBytes (SkinID, NetDataType.BYTE);
+        WriteBytes (SkinID, NetDataType.WORD);
     }
 
 }
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs
index d2e1c07..d3a325b 100644
--- a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA304_tagSCHorseSkinInfo.cs
@@ -16,7 +16,7 @@
         HorseSkinList = new tagSCHorseSkin[Count];
         for (int i = 0; i < Count; i ++) {
             HorseSkinList[i] = new tagSCHorseSkin();
-            TransBytes (out HorseSkinList[i].HorseSkinID, vBytes, NetDataType.BYTE);
+            TransBytes (out HorseSkinList[i].HorseSkinID, vBytes, NetDataType.WORD);
             TransBytes (out HorseSkinList[i].State, vBytes, NetDataType.BYTE);
             TransBytes (out HorseSkinList[i].EndTime, vBytes, NetDataType.DWORD);
             TransBytes (out HorseSkinList[i].Star, vBytes, NetDataType.BYTE);
@@ -24,7 +24,7 @@
     }
 
     public class tagSCHorseSkin {
-        public byte HorseSkinID;        //鍧愰獞澶栬ID
+        public ushort HorseSkinID;        //鍧愰獞澶栬ID
         public byte State;        //鏄惁宸叉縺娲�
         public uint EndTime;        //鍒版湡鏃堕棿鎴筹紝0涓烘案涔�
         public byte Star;        //鏄熺骇
diff --git a/Main/System/Equip/EquipModel.cs b/Main/System/Equip/EquipModel.cs
index 238549c..20588d5 100644
--- a/Main/System/Equip/EquipModel.cs
+++ b/Main/System/Equip/EquipModel.cs
@@ -24,7 +24,7 @@
     public int[] equipUIGirdEffects;  //瑁呭鏍煎瓙鐗规晥
     public ItemModel selectFloorEquip; //閫変腑鐨勫湴鏉胯澶�
     public int lastShowEquipIndex = -1;  //涓婁竴娆$晫闈㈡樉绀鸿澶囩殑绱㈠紩锛屾嬀鍙栧悗鐗╁搧娑堝け闇�璁板綍涓嬪仛琛ㄧ幇
-    public Queue<int> waitEquipOP = new Queue<int>();    //绛夊緟鎿嶄綔鐨勮澶囷紝闇�瑕佸拰UI浜や簰纭 涓嶅惈鍒嗚В
+    public Queue<string> waitEquipOP = new Queue<string>();    //绛夊緟鎿嶄綔鐨勮澶囷紝闇�瑕佸拰UI浜や簰纭 涓嶅惈鍒嗚В
 
     public List<int> lastDropIndexs = new List<int>(); //涓婁竴娆℃帀钀界墿鍝佺储寮�
 
@@ -356,7 +356,13 @@
         }
 
         // 濂藉嚑浠惰澶囬渶瑕佸鐞嗙殑鎯呭喌瀛樿捣鏉�
-        waitEquipOP.Enqueue(equip.gridIndex);
+        if (waitEquipOP.Contains(equip.guid))
+        {
+            //妫�娴嬫椂鏈洪绻侊紝瀵艰嚧閲嶅鎺ㄩ�侊紝闇�瑕佹娴嬭繃婊わ紝瀵瑰簲Dequeue 涔熷仛涓�娆℃娴�
+            Debug.LogWarning("OpenEquipExchangeWin: 閲嶅鎺ㄩ��");
+            return false;
+        }
+        waitEquipOP.Enqueue(equip.guid);
         //鏈洖澶嶈澶囨搷浣滅粨鏋滐紝鍚﹀垯浼氭樉绀烘棫瑁呭
         if (waitEquipOPPack)
         {
@@ -404,8 +410,13 @@
             return null;
         }
 
-
-        return PackManager.Instance.GetItemByIndex(PackType.DropItem, waitEquipOP.Dequeue());
+        var item = PackManager.Instance.GetItemByGuid(waitEquipOP.Dequeue());
+        if (item != null && item.packType == PackType.DropItem)
+        {
+            return item;
+        }
+        Debug.LogError("GetSelectFloorEquip: 娌℃湁鎵惧埌鍙�夎澶�, 璇ヨ澶囧凡缁忚浆绉�");
+        return null;
     }
 
 
diff --git a/Main/System/Main/FightPowerManager.cs b/Main/System/Main/FightPowerManager.cs
index c11b0e5..1b38378 100644
--- a/Main/System/Main/FightPowerManager.cs
+++ b/Main/System/Main/FightPowerManager.cs
@@ -502,6 +502,8 @@
         fightPowerVariables["MagDamPerDefRatio"] = fightPowerRatioConfig.MagDamPerDefRatio;
         fightPowerVariables["CurePerRatio"] = fightPowerRatioConfig.CurePerRatio;
         fightPowerVariables["CurePerDefRatio"] = fightPowerRatioConfig.CurePerDefRatio;
+        fightPowerVariables["ArenaDamPerRatio"] = fightPowerRatioConfig.ArenaDamPerRatio;
+        fightPowerVariables["ArenaDamPerDefRatio"] = fightPowerRatioConfig.ArenaDamPerDefRatio;
 
         long fightPower;
         if (useFormulaType == 0)

--
Gitblit v1.8.0