hch
2025-09-01 0218597f66eb99cf1ebf13d57623107ed433b49a
50 【主界面】核心主体 - 优化掉落
9个文件已修改
122 ■■■■■ 已修改文件
Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB405_tagMCAddExp.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB405_tagMCAddExp.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/StoryBattleField.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Equip/EquipModel.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Equip/FloorItemCell.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Equip/ItemsOnFloor.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/AutoFightModel.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/HomeWin.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
@@ -8,7 +8,7 @@
    public static event Action beforePlayerDataInitializeEvent;
    public static event Action afterPlayerDataInitializeEvent;
    public static event Action switchAccountEvent;
    public static bool isAfterPlayerDataInitialize = false; //可以用来判断是否切号,如短暂的断线重连
    public static bool isAfterPlayerDataInitialize = false; //可区分断线重连还是完全重登; 切到登录场景会重置为false,故可判断断线重连
    public static uint playerIdBuf = 0;
    public override void Done(GameNetPackBasic vNetPack)
Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB405_tagMCAddExp.cs
@@ -1,11 +1,11 @@
using UnityEngine;
using System.Collections;
//B4 05 获得经验 #tagMCAddExp
public class DTCB405_tagMCAddExp : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack) {
        base.Done(vNetPack);
        HB405_tagMCAddExp vNetData = vNetPack as HB405_tagMCAddExp;
    }
}
//B4 05 获得经验 #tagMCAddExp
public class DTCB405_tagMCAddExp : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack) {
        base.Done(vNetPack);
        HB405_tagMCAddExp vNetData = vNetPack as HB405_tagMCAddExp;
    }
}
Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB405_tagMCAddExp.cs
@@ -1,21 +1,21 @@
using UnityEngine;
using System.Collections;
//B4 05 获得经验 #tagMCAddExp
public class HB405_tagMCAddExp : GameNetPackBasic {
    public uint ExpPoint;    // 单位亿点
    public uint Exp;    // 单位点
    public byte Source;    //经验获取来源
    public HB405_tagMCAddExp () {
        _cmd = (ushort)0xB405;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out ExpPoint, vBytes, NetDataType.DWORD);
        TransBytes (out Exp, vBytes, NetDataType.DWORD);
        TransBytes (out Source, vBytes, NetDataType.BYTE);
    }
}
//B4 05 获得经验 #tagMCAddExp
public class HB405_tagMCAddExp : GameNetPackBasic {
    public uint ExpPoint;    // 单位亿点
    public uint Exp;    // 单位点
    public byte Source;    //经验获取来源
    public HB405_tagMCAddExp () {
        _cmd = (ushort)0xB405;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out ExpPoint, vBytes, NetDataType.DWORD);
        TransBytes (out Exp, vBytes, NetDataType.DWORD);
        TransBytes (out Source, vBytes, NetDataType.BYTE);
    }
}
Main/System/Battle/BattleField/StoryBattleField.cs
@@ -194,6 +194,19 @@
                BattleDebug.LogError("HandModeOperationAgent DoNext  2");
                //再检查一次有没装备未处理
                if (PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems().Count > 0)
                {
                    //构建所有物品
                    List<int> dropList = new List<int>();
                    foreach (var item in PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems())
                    {
                        dropList.Add(item.gridIndex);
                    }
                    EquipModel.Instance.NotifyItemDrop(dropList, null);
                    return;
                }
                //    检查一下锤子的消耗
                if (!ItemLogicUtility.CheckCurrencyCount(41, PlayerDatas.Instance.baseData.UseHarmerCount, 2))
                {
Main/System/Equip/EquipModel.cs
@@ -25,6 +25,8 @@
    public int lastShowEquipIndex = -1;  //上一次界面显示装备的索引,拾取后物品消失需记录下做表现
    public Queue<int> waitEquipOP = new Queue<int>();    //等待操作的装备,需要和UI交互确认 不含分解
    public List<int> lastDropIndexs = new List<int>(); //上一次掉落物品索引
    public override void Init()
    {
        DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent += OnEquipResult;
@@ -60,7 +62,9 @@
        selectFloorEquip = null;
        waitEquipOP.Clear();
        lastShowEquipIndex = -1;
        lastDropIndexs.Clear();
    }
    public static int GetItemServerEquipPlace(int itemId)
    {
@@ -81,6 +85,9 @@
    void OnDropEvent(string guid, BattleDrops drops, Action action)
    {
        if (!string.IsNullOrEmpty(guid))
            return;
        lastDropIndexs = drops.dropItemPackIndex;
        NotifyItemDrop(drops.dropItemPackIndex, drops.rectTransform);
        action?.Invoke();
    }
Main/System/Equip/FloorItemCell.cs
@@ -45,19 +45,9 @@
            uieff.Play();
        }
        if (rect == null)
        {
            if (startPos == new Vector2(10000, 10000))
            {
                //避免多次随机
                startPos = new Vector2(UnityEngine.Random.Range(-150, 150), UnityEngine.Random.Range(-150, 150));
            }
        }
        else
        {
            //startPos的位置进行范围随机
            startPos = new Vector2(rect.localPosition.x + UnityEngine.Random.Range(-60, 60), rect.localPosition.y + UnityEngine.Random.Range(-60, 60));
        }
        this.transform.position = rect.position;
        startPos = new Vector2(transform.localPosition.x + UnityEngine.Random.Range(-30, 30), transform.localPosition.y + UnityEngine.Random.Range(50, 100));
        if (isAnimate)
        {
            isPlaying = true;
Main/System/Equip/ItemsOnFloor.cs
@@ -11,6 +11,7 @@
    [SerializeField] RectTransform floorUI;     //掉落道具显示的父类
    [SerializeField] FloorItemCell floorItemCell;    //非装备显示组件
    [SerializeField] MoneyMoveByPath moneyMoveByPathCell;     //掉落物金钱
    [SerializeField] RectTransform defaultDropRect;     //默认掉落位置
    FloorItemCell[] floorItemCells = new FloorItemCell[20];    //包含非装备的战利品掉落
    MoneyMoveByPath[] moneyMoveByPathArr = new MoneyMoveByPath[20];  //掉落货币,金钱,经验等
@@ -40,7 +41,7 @@
    private void OnEnable()
    {
        //主界面打开和显隐都要刷新
        Display();
        Display(true, EquipModel.Instance.lastDropIndexs);
        EquipModel.Instance.OnItemDropEvent += NotifyPlayItemDrop;
        PackManager.Instance.DeleteItemEvent += DeleteDropItem;
    }
@@ -98,14 +99,14 @@
                item.SetActive(false);
                continue;
            }
            if (indexList != null && !indexList.Contains(i))
            if (!indexList.IsNullOrEmpty() && !indexList.Contains(i))
            {
                //不干涉其他掉落物品
                continue;
            }
            item.SetActive(true);
            item.Display(i, isAnimate, rect);
            item.Display(i, isAnimate, rect == null ? defaultDropRect : rect);
        }
    }
Main/System/Main/AutoFightModel.cs
@@ -75,7 +75,6 @@
    public override void Init()
    {
        ParseConfig();
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit;
        BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
        EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast);
@@ -84,7 +83,6 @@
    public override void Release()
    {
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
        BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerInit;
@@ -99,10 +97,6 @@
        maxCost = autoCostWithBlessLV.Length;
    }
    void OnPlayerLoginOk()
    {
        //登录时有装备的处理
    }
    void BeforePlayerInit()
    {
Main/System/Main/HomeWin.cs
@@ -72,25 +72,6 @@
        autoBtn.AddListener(() =>
        {
            // //测试拾取所有物品
            // var items = PackManager.Instance.GetItems(PackType.DropItem);
            // List<int> dropindexs = new List<int>();
            // for (int i = 0; i < items.Count; i++)
            // {
            //     var item = items[i];
            //     if (dropindexs.Count > 5)
            //     {
            //         EquipModel.Instance.NotifyItemDrop(dropindexs, BattleManager.Instance.storyBattleField.battleRootNode.blueTeamNodeList[Random.Range(0, 5)].GetComponent<RectTransform>());
            //         dropindexs.Clear();
            //     }
            //     dropindexs.Add(item.gridIndex);
            // }
            // if (dropindexs.Count > 0)
            // {
            //     EquipModel.Instance.NotifyItemDrop(dropindexs, BattleManager.Instance.storyBattleField.battleRootNode.blueTeamNodeList[Random.Range(0, 5)].GetComponent<RectTransform>());
            //     dropindexs.Clear();
            // }
            if (!FuncOpen.Instance.IsFuncOpen(108, true))
            {
                return;