From d7a89759df90fcad6c5553c2227baf73ea9154cf Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 10 七月 2026 16:50:56 +0800
Subject: [PATCH] 129 【战斗】战斗系统- 请求分解汇总成一个包发送,避免瞬间发包太多被踢
---
Main/System/Equip/EquipModel.cs | 22 +++++++++++++++++++---
Main/System/Main/AutoFightModel.cs | 21 ++++++++++++++++++++-
2 files changed, 39 insertions(+), 4 deletions(-)
diff --git a/Main/System/Equip/EquipModel.cs b/Main/System/Equip/EquipModel.cs
index 6bc8205..455500e 100644
--- a/Main/System/Equip/EquipModel.cs
+++ b/Main/System/Equip/EquipModel.cs
@@ -198,11 +198,27 @@
int cnt = items.Count;
needMoreDrop = cnt >= PackManager.Instance.GetPackMaxCount(PackType.DropItem);
- //鏋勫缓鎵�鏈夌墿鍝�
- foreach (var item in items)
+ try
{
- CalcFloorEquip(item.gridIndex);
+ AutoFightModel.Instance.SetCollectEquipForDeComState(true);
+ //鏋勫缓鎵�鏈夌墿鍝�
+ foreach (var item in items)
+ {
+ CalcFloorEquip(item.gridIndex);
+ }
+ AutoFightModel.Instance.SetCollectEquipForDeComState(false);
+ SendEquipOP(AutoFightModel.Instance.decompEquipOPList.ToArray(), 1);
+ AutoFightModel.Instance.decompEquipOPList.Clear();
}
+ catch
+ {
+ if (AutoFightModel.Instance.decompEquipOPList.Count > 0)
+ {
+ SendEquipOP(AutoFightModel.Instance.decompEquipOPList.ToArray(), 1);
+ AutoFightModel.Instance.decompEquipOPList.Clear();
+ }
+ }
+
if (needMoreDrop)
{
SendEquipOP(null, 3);
diff --git a/Main/System/Main/AutoFightModel.cs b/Main/System/Main/AutoFightModel.cs
index acaf4e3..7e7b97f 100644
--- a/Main/System/Main/AutoFightModel.cs
+++ b/Main/System/Main/AutoFightModel.cs
@@ -373,6 +373,14 @@
ChangeAutoEvent?.Invoke();
}
+ //鏀堕泦瑕佸垎瑙g殑瑁呭锛屼竴娆℃�у彂閫�
+ public List<ushort> decompEquipOPList = new List<ushort>();
+ bool openCollectEquipForDeCom = false;
+
+ public void SetCollectEquipForDeComState(bool isOpen)
+ {
+ openCollectEquipForDeCom = isOpen;
+ }
//鑷姩澶勭悊瑁呭锛岄渶瑕佺瓑寰呯┛鎴磋繑鍥瀎alse锛屽叾浠栨儏鍐佃繑鍥瀟rue
public bool TryAutoFightDoEquip(ItemModel item)
@@ -387,7 +395,18 @@
if (showFightPower <= 0)
{
- EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)item.gridIndex }, 1);
+ if (openCollectEquipForDeCom)
+ {
+ //鎵撳紑閲囬泦锛屽悗缁竴娆℃�у垎瑙�
+ ushort dropIndex = (ushort)item.gridIndex;
+ if (!decompEquipOPList.Contains(dropIndex))
+ decompEquipOPList.Add((ushort)item.gridIndex);
+ }
+ else
+ {
+ //鍗曟鍒嗚В
+ EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)item.gridIndex }, 1);
+ }
return true;
}
else
--
Gitblit v1.8.0