129 【战斗】战斗系统- 请求分解汇总成一个包发送,避免瞬间发包太多被踢
2个文件已修改
43 ■■■■■ 已修改文件
Main/System/Equip/EquipModel.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/AutoFightModel.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
Main/System/Main/AutoFightModel.cs
@@ -373,6 +373,14 @@
        ChangeAutoEvent?.Invoke();
    }
    //收集要分解的装备,一次性发送
    public List<ushort> decompEquipOPList = new List<ushort>();
    bool openCollectEquipForDeCom = false;
    public void SetCollectEquipForDeComState(bool isOpen)
    {
        openCollectEquipForDeCom = isOpen;
    }
    //自动处理装备,需要等待穿戴返回false,其他情况返回true
    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