少年修仙传客户端代码仓库
client_Hale
2019-04-25 d2ff47a31afe4167a78eb76e44cabdb1025c16fc
382 自动拾取前端掉落物
2个文件已修改
68 ■■■■ 已修改文件
Fight/Actor/AI/HeroAI_Base.cs 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/ClientDropItemUtility.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_Base.cs
@@ -219,10 +219,11 @@
    {
        GA_Hero _hero = PlayerDatas.Instance.hero;
        DropItemManager.DropObject _obj = null;
        if (DropItemManager.HandupTryGetHeroItem(out _obj))
        {
            bool _needPickupSelf = true;
        bool _needPickupSelf = true;
        Vector3 _destPosition = _hero.Pos;
        if (_needPickupSelf = DropItemManager.HandupTryGetHeroItem(out _obj))
        {
            // 有掉落物
            // 是否是强制守护不能拾取的
            if (_obj.ownerType != 7)
@@ -263,16 +264,32 @@
            if (_needPickupSelf)
            {
                _hero.StopRush();
                Vector3 _targetPosition = _obj.dropItem.transform.position;
                float _chkDistSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, _targetPosition);
                if (_chkDistSqrt > 0.5f)
                {
                    _hero.MoveToPosition(_targetPosition);
                }
                return true;
                _destPosition = _obj.dropItem.transform.position;
            }
        }
        if (!_needPickupSelf)
        {
            DropItem _item = null;
            if (_needPickupSelf = ClientDropItemUtility.Instance.TryGetDropItem(out _item))
            {
                if (_needPickupSelf)
                {
                    _destPosition = _item.transform.position;
                }
            }
        }
        if (_needPickupSelf)
        {
            _hero.StopRush();
            float _chkDistSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, _destPosition);
            if (_chkDistSqrt > 0.5f)
            {
                _hero.MoveToPosition(_destPosition);
            }
            return true;
        }
        return false;
    }
Fight/ClientDropItemUtility.cs
@@ -14,6 +14,35 @@
    private List<DropItem> m_DropItemList = new List<DropItem>();
    public bool TryGetDropItem(out DropItem item)
    {
        var _hero = PlayerDatas.Instance.hero;
        if (_hero == null || m_DropItemList.Count == 0)
        {
            item = null;
            return false;
        }
        m_DropItemList.Sort((i1, i2) =>
        {
            var _d1 = MathUtility.DistanceSqrtXZ(_hero.Pos, i1.transform.position);
            var _d2 = MathUtility.DistanceSqrtXZ(_hero.Pos, i2.transform.position);
            if (_d2 > _d1)
            {
                return -1;
            }
            else if (_d2 < _d1)
            {
                return 1;
            }
            return 0;
        });
        item = m_DropItemList[0];
        return true;
    }
    public void Update()
    {
        var _hero = PlayerDatas.Instance.hero;