少年修仙传客户端代码仓库
client_Wu Xijin
2018-09-21 b480149c5a7ebafaafcb60d65ab93662e0173db4
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
10个文件已修改
585 ■■■■ 已修改文件
Core/GameEngine/Model/Config/DogzConfig.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DogzConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzActiveWin.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzCell.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzModel.cs 383 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzPackWin.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialDungeonModel.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialExchangeWin.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/HighSettingFadeInFadeOut.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/SkillTaskWin.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DogzConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Friday, August 17, 2018
//    [  Date ]:           Friday, September 21, 2018
//--------------------------------------------------------
using UnityEngine;
@@ -17,7 +17,8 @@
        public int[] BaseAttrTypes;
        public int[] BaseAttrValues;
        public int[] HelpBattleSkills;
        public int[] EquipPlaceColorList;
        public int FightPowerEx { get ; private set ; }
        public string EquipPlaceColorList { get ; private set; }
        public override string getKey()
        {
@@ -54,12 +55,9 @@
                     int.TryParse(HelpBattleSkillsStringArray[i],out HelpBattleSkills[i]);
                }
            
                string[] EquipPlaceColorListStringArray = rawContents[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                EquipPlaceColorList = new int[EquipPlaceColorListStringArray.Length];
                for (int i=0;i<EquipPlaceColorListStringArray.Length;i++)
                {
                     int.TryParse(EquipPlaceColorListStringArray[i],out EquipPlaceColorList[i]);
                }
                FightPowerEx=IsNumeric(rawContents[6]) ? int.Parse(rawContents[6]):0;
                EquipPlaceColorList = rawContents[7].Trim();
            }
            catch (Exception ex)
            {
Core/GameEngine/Model/Config/DogzConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 940b0f1e335cf3749bb18fbee7090526
timeCreated: 1534489434
timeCreated: 1537522814
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/Dogz/DogzActiveWin.cs
@@ -16,7 +16,7 @@
        [SerializeField] ScrollerController m_Controller;
        [SerializeField] List<DogzSkillData> m_DogzSkills;
        [SerializeField] List<DogzEquip> m_DogzEquips;
        [SerializeField] List<Button> m_DogzUnEquipBtns;
        [SerializeField] List<DogzUnEquip> m_DogzUnEquipBtns;
        [SerializeField] List<Text> m_PropertyTypes;
        [SerializeField] List<Text> m_PropertyValues;
        [SerializeField] Image m_DogzHeadIcon;
@@ -25,6 +25,7 @@
        [SerializeField] Button m_TakeOffEquipBtn;
        [SerializeField] Button m_EquipPackBtn;
        [SerializeField] Button m_CallBackBtn;
        [SerializeField] RedpointBehaviour assistBtnRedBehav;
        [SerializeField] Text m_CallBackBtnTxt;
        DogzModel m_Model;
        DogzModel model
@@ -51,7 +52,7 @@
            for (int i = 0; i < m_DogzUnEquipBtns.Count; i++)
            {
                var _index = i;
                m_DogzUnEquipBtns[i].onClick.AddListener(() =>
                m_DogzUnEquipBtns[i].DogzUnEquipBtn.AddListener(() =>
                {
                    OpenDogzEquip(_index);
                });
@@ -106,6 +107,7 @@
            UpdateDogzEquip();
            UpdateDogzProperty();
            UpdateDogzBtn();
            assistBtnRedBehav.redpointId = model.GetDogzAssistRedpointById(model.presentSelectDogz).id;
        }
        private void UpdateDogzSkill()
        {
@@ -144,9 +146,12 @@
        private void RefreshDogzEquipEvent(int dogzId)
        {
            if (dogzId != model.presentSelectDogz) return;
            m_Controller.m_Scorller.RefreshActiveCellViews();
            UpdateDogzEquip();
            UpdateDogzProperty();
            UpdateDogzBtn();
        }
        private void UpdateDogzEquip()
@@ -158,7 +163,8 @@
            {
                ItemModel _data;
                bool _equiped = model.TryGetDogzEquip(model.presentSelectDogz, i+101, out _data);
                m_DogzUnEquipBtns[i].gameObject.SetActive(!_equiped);
                m_DogzUnEquipBtns[i].DogzUnEquipBtn.gameObject.SetActive(!_equiped);
                m_DogzUnEquipBtns[i].RedpointBeh.redpointId = model.GetDogzEquipPlaceRedpointById(model.presentSelectDogz,i).id;
                m_DogzEquips[i].gameObject.SetActive(_equiped);
                if (_equiped)
                {
@@ -302,6 +308,15 @@
            [SerializeField] Button m_SkillBtn;
            public Button SkillBtn { get { return m_SkillBtn; } }
        }
        [Serializable]
        public class DogzUnEquip
        {
            [SerializeField] Button m_DogzUnEquipBtn;
            public Button DogzUnEquipBtn { get { return m_DogzUnEquipBtn; } }
            [SerializeField] RedpointBehaviour m_RedpointBeh;
            public RedpointBehaviour RedpointBeh { get { return m_RedpointBeh; } }
        }
    }
}
System/Dogz/DogzCell.cs
@@ -14,6 +14,7 @@
        [SerializeField] Text m_DogzName;
        [SerializeField] Text m_DogzGrade;
        [SerializeField] Button m_DogzBtn;
        [SerializeField] RedpointBehaviour redpointBehav;
        DogzModel m_Model;
        DogzModel model
@@ -34,6 +35,7 @@
            bool isActive = (_dogzEquips == null || _dogzEquips.Count < 5) ? false : true;
            m_DogzName.text = _dogzCfg.Name;
            m_DogzGrade.text = StringUtility.Contact("评分:", 100);
            redpointBehav.redpointId = model.GetSingleDogzRedpointById(_dogzCfg.ID).id;
            if (isActive)
            {
                m_DogzIcon.material = MaterialUtility.GetUIDefaultGraphicMaterial();
System/Dogz/DogzModel.cs
@@ -14,6 +14,7 @@
        public override void Init()
        {
            ParseConfig();
            SetDogzAndEquipPlaceRedKey();
        }
        public void OnBeforePlayerDataInitialize()
@@ -37,6 +38,9 @@
            SetDogzEquipInfo();
            playerPack.RefreshItemCountAct -= RefreshDogzEquipInfo;
            playerPack.RefreshItemCountAct += RefreshDogzEquipInfo;
            UpdateDogzAssistRed();
            UpdateDogzEquipPlaceRed();
            UpdateAssistNumRed();
        }
        public override void UnInit()
@@ -164,6 +168,16 @@
            }
        }
        public bool CheckIsAddAssistNum()
        {
            var _itemConfig = Config.Instance.Get<ItemConfig>(AddAssistItem);
            if(GetAssistItemCnt() <= playerPack.GetItemCountByID(PackType.rptItem, AddAssistItem))
            {
                return true;
            }
            return false;
        }
        #region 协议
        public int addAssistCnt { get; private set; } //额外购买的助战数
@@ -175,6 +189,8 @@
            {
                UpdateAssistDogzEvent();
            }
            UpdateDogzAssistRed();
            UpdateDogzEquipPlaceRed();
        }
        public event Action UpdateAssistDogzEvent;
@@ -194,6 +210,9 @@
            {
                UpdateAssistDogzEvent();
            }
            UpdateDogzAssistRed();
            UpdateDogzEquipPlaceRed();
        }
        public int GetAssistDogzCount()
@@ -218,7 +237,7 @@
        public void SetDogzEquipInfo()
        {
            m_DogzEquipDict = new Dictionary<int, List<ItemModel>>();
            m_DogzEquipDict.Clear();
            SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptDogzEquip);
            if (singlePack == null) return;
@@ -244,63 +263,75 @@
        public Action<int> RefreshDogzEquipAct;
        private void RefreshDogzEquipInfo(PackType type, int index, int id)
        {
            if (type != PackType.rptDogzEquip) return;
            ItemModel itemModel = playerPack.GetItemModelByIndex(type, index);
            int dogzId = GetDogzIDByIndex(index);
            List<ItemModel> modellist = GetDogzEquips(dogzId);
            if(modellist != null)
            if(type == PackType.rptItem && id == AddAssistItem)
            {
                if (itemModel != null)
                UpdateAssistNumRed();
            }
            else if(type == PackType.rptDogzItem)
            {
                UpdateDogzAssistRed();
                UpdateDogzEquipPlaceRed();
            }
            else if(type == PackType.rptDogzEquip)
            {
                ItemModel itemModel = playerPack.GetItemModelByIndex(type, index);
                int dogzId = GetDogzIDByIndex(index);
                List<ItemModel> modellist = GetDogzEquips(dogzId);
                if (modellist != null)
                {
                    bool isAdd = true;
                    for (int i = 0; i < modellist.Count; i++)
                    if (itemModel != null)
                    {
                        if (modellist[i].itemInfo.ItemPlace == index)
                        bool isAdd = true;
                        for (int i = 0; i < modellist.Count; i++)
                        {
                            isAdd = false;
                            modellist[i] = itemModel;
                            break;
                            if (modellist[i].itemInfo.ItemPlace == index)
                            {
                                isAdd = false;
                                modellist[i] = itemModel;
                                break;
                            }
                        }
                        if (isAdd)
                        {
                            modellist.Add(itemModel);
                        }
                    }
                    if(isAdd)
                    else
                    {
                       modellist.Add(itemModel);
                        for (int i = 0; i < modellist.Count; i++)
                        {
                            if (modellist[i].itemInfo.ItemPlace == index)
                            {
                                modellist.RemoveAt(i);
                                break;
                            }
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < modellist.Count; i++)
                    if (itemModel != null)
                    {
                        if (modellist[i].itemInfo.ItemPlace == index)
                        {
                            modellist.RemoveAt(i);
                            break;
                        }
                        List<ItemModel> equipDatas = new List<ItemModel>();
                        equipDatas.Add(itemModel);
                        m_DogzEquipDict.Add(dogzId, equipDatas);
                    }
                }
            }
            else
            {
                if(itemModel != null)
                {
                    List<ItemModel> equipDatas = new List<ItemModel>();
                    equipDatas.Add(itemModel);
                    m_DogzEquipDict.Add(dogzId,equipDatas);
                }
            }
            if(RefreshDogzEquipAct != null)
            {
                RefreshDogzEquipAct(dogzId);
                if (RefreshDogzEquipAct != null)
                {
                    RefreshDogzEquipAct(dogzId);
                }
                UpdateDogzAssistRed();
                UpdateDogzEquipPlaceRed();
            }
        }
        /// <summary>
        /// 获得神兽穿戴的装备数据
        /// </summary>
        public Dictionary<int, List<ItemModel>> m_DogzEquipDict { get; private set; }
        private Dictionary<int, List<ItemModel>> m_DogzEquipDict = new Dictionary<int, List<ItemModel>>();
        public List<ItemModel> GetDogzEquips(int _dogzId)
        {
@@ -547,27 +578,6 @@
        }
        #endregion
        #region 装备详细信息
        public DogzEquipData viewDetailData { get; private set; }
        public bool viewDetailCompare { get; private set; }
        public void ViewDetail(int _itemId, bool compare = false)
        {
            //viewDetailData = new DogzEquipData(_itemId);
            //viewDetailCompare = compare;
            //if (!WindowCenter.Instance.CheckOpen<DogzDetailsWin>())
            //{
            //    WindowCenter.Instance.Open<DogzDetailsWin>();
            //}
        }
        public int DogzEquipScore(DogzEquipData data)
        {
            return 0;
        }
        #endregion
        #region 默认选择逻辑处理
        public void SetDefaultSelectDogz()
        {
@@ -585,6 +595,263 @@
            }
        }
        #endregion
        #region 红点逻辑处理
        public const int MAINDOGZ_REDKEY = 112;
        public const int DOGZFUNC_REDKEY = 11201;
        public const int ADDASSISTDOGZ_REDKEY = 1120100002;
        public Redpoint mainDogzRedpoint = new Redpoint(MainRedDot.RedPoint_key, MAINDOGZ_REDKEY);
        public Redpoint dogzFuncRedpoint = new Redpoint(MAINDOGZ_REDKEY,DOGZFUNC_REDKEY);
        public Redpoint addAssistDogzRedpoint = new Redpoint(DOGZFUNC_REDKEY,ADDASSISTDOGZ_REDKEY);
        private Dictionary<int, Redpoint> singleDogzRedDict = new Dictionary<int, Redpoint>();
        private Dictionary<int, Redpoint> dogzAssistRedDict = new Dictionary<int, Redpoint>();
        private Dictionary<int, Dictionary<int, Redpoint>> dogzEquipPlaceRedDict = new Dictionary<int, Dictionary<int, Redpoint>>();
        public void SetDogzAndEquipPlaceRedKey()
        {
            singleDogzRedDict.Clear();
            dogzEquipPlaceRedDict.Clear();
            dogzAssistRedDict.Clear();
            int i = 0;
            foreach(var dogzId in m_DogzEquipLimit.Keys)
            {
                i += 1;
                int dogzRedKey = DOGZFUNC_REDKEY * 100 + i;
                Redpoint dogzRedPoint = new Redpoint(DOGZFUNC_REDKEY,dogzRedKey);
                singleDogzRedDict.Add(dogzId, dogzRedPoint);
                int dogzAssistRedKey = dogzRedKey * 100 + i;
                Redpoint dogzAssistRedPoint = new Redpoint(dogzRedKey, dogzAssistRedKey);
                dogzAssistRedDict.Add(dogzId,dogzAssistRedPoint);
                Dictionary<int, Redpoint> equipPlaceRedDict = new Dictionary<int, Redpoint>();
                dogzEquipPlaceRedDict.Add(dogzId,equipPlaceRedDict);
                int equipPlaceNum = m_DogzEquipLimit[dogzId].Count;
                for (int j = 0; j < equipPlaceNum; j++)
                {
                    int equipPlaceRedKey = dogzRedKey * 10 + j;
                    Redpoint equipPlaceRedpoint = new Redpoint(dogzRedKey,equipPlaceRedKey);
                    equipPlaceRedDict.Add(j, equipPlaceRedpoint);
                }
            }
        }
        public Redpoint GetSingleDogzRedpointById(int dogzId)
        {
            Redpoint redpoint = null;
            singleDogzRedDict.TryGetValue(dogzId, out redpoint);
            return redpoint;
        }
        public Redpoint GetDogzAssistRedpointById(int dogzId)
        {
            Redpoint redpoint = null;
            dogzAssistRedDict.TryGetValue(dogzId,out redpoint);
            return redpoint;
        }
        public Redpoint GetDogzEquipPlaceRedpointById(int dogzId,int index)
        {
            Redpoint redpoint = null;
            if(dogzEquipPlaceRedDict.ContainsKey(dogzId))
            {
                dogzEquipPlaceRedDict[dogzId].TryGetValue(index, out redpoint);
            }
            return redpoint;
        }
        public void UpdateDogzAssistRed()
        {
            foreach(var value in dogzAssistRedDict.Values)
            {
                value.state = RedPointState.None;
            }
            bool isMaxAssistNum = GetAssistDogzCount() >= DogzAssistDefaultCnt ? true : false;
            if(!isMaxAssistNum)
            {
                int maxDogzId = 0;
                foreach(var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    if(equipNum >= 5 && maxDogzId < dogzId
                        && !TryGetAssistDogzState(dogzId))
                    {
                        maxDogzId = dogzId;
                    }
                }
                if(maxDogzId > 0)
                {
                    Redpoint assistRedpoint = GetDogzAssistRedpointById(maxDogzId);
                    if(assistRedpoint.state == RedPointState.None)
                    {
                        assistRedpoint.state = RedPointState.Simple;
                    }
                }
            }
            else
            {
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    if(!TryGetAssistDogzState(dogzId) && equipNum == 5)
                    {
                        Redpoint assistRedpoint = GetDogzAssistRedpointById(dogzId);
                        if (assistRedpoint.state == RedPointState.None)
                        {
                            assistRedpoint.state = RedPointState.Simple;
                        }
                        break;
                    }
                }
            }
        }
        public void UpdateDogzEquipPlaceRed()
        {
            foreach(var value in dogzEquipPlaceRedDict.Values)
            {
                foreach(var value2 in value.Values)
                {
                    value2.state = RedPointState.None;
                }
            }
            foreach(var value in dogzAssistRedDict.Values)
            {
                if(value.state == RedPointState.Simple)
                {
                    return;
                }
            }
            bool isMaxAssistNum = GetAssistDogzCount() >= DogzAssistDefaultCnt ? true : false;
            if (!isMaxAssistNum)
            {
                int maxEquipNum = 0;
                int spaceDogzId = 0;
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    if (equipNum < 5)
                    {
                        if (spaceDogzId == 0)
                        {
                            if (maxEquipNum <= equipNum)
                            {
                                maxEquipNum = equipNum;
                                spaceDogzId = dogzId;
                            }
                        }
                        else
                        {
                            if (maxEquipNum < equipNum)
                            {
                                maxEquipNum = equipNum;
                                spaceDogzId = dogzId;
                            }
                        }
                    }
                }
                if(spaceDogzId != 0)
                {
                    for(int i = 0; i < 5; i++)
                    {
                        ItemModel _data;
                        bool _equiped = TryGetDogzEquip(spaceDogzId, i + 101, out _data);
                        if(!_equiped)
                        {
                            GetDogzItemListByIndex(i);
                            if (selectEquipPlacelist.Count > 0)
                            {
                                Redpoint equipPlaceRedpoint = GetDogzEquipPlaceRedpointById(spaceDogzId,i);
                                if(equipPlaceRedpoint.state == RedPointState.None)
                                {
                                    equipPlaceRedpoint.state = RedPointState.Simple;
                                }
                                break;
                            }
                        }
                    }
                }
            }
            else
            {
                int minAlreadyAssistId = 0;
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    if(TryGetAssistDogzState(dogzId)
                        && minAlreadyAssistId != 0
                        && minAlreadyAssistId < dogzId)
                    {
                        minAlreadyAssistId = dogzId;
                    }
                }
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    bool isBetterDogz = true;
                    if(!TryGetAssistDogzState(dogzId) && dogzId > minAlreadyAssistId && equipNum < 5)
                    {
                        for (int i = 0; i < 5; i++)
                        {
                            ItemModel _data;
                            bool _equiped = TryGetDogzEquip(dogzId, i + 101, out _data);
                            if (!_equiped)
                            {
                                GetDogzItemListByIndex(i);
                                if (selectEquipPlacelist.Count < 1)
                                {
                                    isBetterDogz = false;
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        isBetterDogz = false;
                    }
                    if(isBetterDogz)
                    {
                        for (int i = 0; i < 5; i++)
                        {
                            ItemModel _data;
                            bool _equiped = TryGetDogzEquip(dogzId, i + 101, out _data);
                            if (!_equiped)
                            {
                                Redpoint equipPlaceRedpoint = GetDogzEquipPlaceRedpointById(dogzId, i);
                                if (equipPlaceRedpoint.state == RedPointState.None)
                                {
                                    equipPlaceRedpoint.state = RedPointState.Simple;
                                    break;
                                }
                            }
                        }
                        break;
                    }
                }
            }
        }
        public void UpdateAssistNumRed()
        {
          if(CheckIsAddAssistNum())
           {
                if(addAssistDogzRedpoint.state == RedPointState.None)
                {
                    addAssistDogzRedpoint.state = RedPointState.Simple;
                }
            }
          else
            {
                addAssistDogzRedpoint.state = RedPointState.None;
            }
        }
        #endregion
    }
}
System/Dogz/DogzPackWin.cs
@@ -16,7 +16,7 @@
    public class DogzPackWin : Window
    {
        [SerializeField] List<DogzEquip> m_DogzEquips;
        [SerializeField] List<Button> m_DogzUnEquipBtns;
        [SerializeField] List<DogzUnEquip> m_DogzUnEquipBtns;
        [SerializeField] List<Text> m_DogzUnEquipContents;
        [SerializeField] Image m_DogzHeadIcon;
        [SerializeField] Button m_CloseBtn;
@@ -106,7 +106,8 @@
                ItemModel _data;
                int index = i;
                bool _equiped = dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, i+101, out _data);
                m_DogzUnEquipBtns[i].gameObject.SetActive(!_equiped);
                m_DogzUnEquipBtns[i].DogzUnEquipBtn.gameObject.SetActive(!_equiped);
                m_DogzUnEquipBtns[i].RedpointBeh.redpointId = dogzModel.GetDogzEquipPlaceRedpointById(dogzModel.presentSelectDogz,i).id;
                m_DogzEquips[i].gameObject.SetActive(_equiped);
                if (_equiped)
                {
@@ -118,8 +119,8 @@
                    m_DogzUnEquipContents[i].text = StringUtility.Contact(DogzModel.GetItemColorName(_itemColor),
                        DogzModel.GetDogzPartNameByIndex(i));
                    m_DogzUnEquipContents[i].color = UIHelper.GetUIColor(_itemColor);
                    m_DogzUnEquipBtns[i].RemoveAllListeners();
                    m_DogzUnEquipBtns[i].AddListener(() => { ClickEquipIndex(index); });
                    m_DogzUnEquipBtns[i].DogzUnEquipBtn.RemoveAllListeners();
                    m_DogzUnEquipBtns[i].DogzUnEquipBtn.AddListener(() => { ClickEquipIndex(index); });
                }
            }
        }
@@ -188,6 +189,15 @@
        {
            qualitySort.gameObject.SetActive(!qualitySort.gameObject.activeInHierarchy);
        }
        [Serializable]
        public class DogzUnEquip
        {
            [SerializeField] Button m_DogzUnEquipBtn;
            public Button DogzUnEquipBtn { get { return m_DogzUnEquipBtn; } }
            [SerializeField] RedpointBehaviour m_RedpointBeh;
            public RedpointBehaviour RedpointBeh { get { return m_RedpointBeh; } }
        }
    }
}
System/Dungeon/TrialDungeonModel.cs
@@ -113,9 +113,17 @@
        private void RefreshItemCountAct(PackType packType, int arg2, int itemId)
        {
            if (packType == PackType.rptItem && trialTokens.Contains(itemId))
            var config = Config.Instance.Get<ItemConfig>(itemId);
            if (config == null)
            {
                UpdateRedpoint();
                return;
            }
            if (packType == PackType.rptItem)
            {
                if (trialTokens.Contains(itemId) || config.EquipPlace > 0)
                {
                    UpdateRedpoint();
                }
            }
            else if (packType == PackType.rptEquip)
            {
@@ -263,8 +271,29 @@
            {
                return 0;
            }
            var singlepack = packModel.GetSinglePackModel(PackType.rptEquip);
            if (singlepack == null)
            var singlepack = packModel.GetSinglePackModel(PackType.rptItem);
            if (singlepack != null)
            {
                var dict = singlepack.GetPackModelIndexDict();
                if (dict != null)
                {
                    foreach (var itemModel in dict.Values)
                    {
                        if (itemModel.chinItemModel.EquipPlace == config.EquipPlace
                            && (itemModel.chinItemModel.JobLimit / 100 == PlayerDatas.Instance.baseData.Job
                            || itemModel.chinItemModel.JobLimit == 0))
                        {
                            var compare = EquipCompare(itemModel, config);
                            if (compare == -1 || compare == 0)
                            {
                                return compare;
                            }
                        }
                    }
                }
            }
            singlepack = packModel.GetSinglePackModel(PackType.rptEquip);
            if (singlepack != null)
            {
                return 1;
            }
@@ -273,7 +302,12 @@
            {
                return 1;
            }
            var compareConfig = Config.Instance.Get<ItemConfig>(equipItem.itemId);
            return EquipCompare(equipItem, config);
        }
        int EquipCompare(ItemModel compareItem, ItemConfig config)
        {
            var compareConfig = Config.Instance.Get<ItemConfig>(compareItem.itemId);
            if (compareConfig == null)
            {
                return 1;
System/Dungeon/TrialExchangeWin.cs
@@ -82,6 +82,7 @@
            model.SelectEquipClassEvent += SelectEquipClassEvent;
            packModel.RefreshItemCountAct += RefreshItemCountAct;
            Display();
            JumpToRedpoint();
        }
        protected override void OnAfterOpen()
@@ -170,10 +171,18 @@
        private void RefreshItemCountAct(PackType packtype, int arg2, int itemId)
        {
            if (packtype == PackType.rptItem && model.trialTokens.Contains(itemId))
            var config = Config.Instance.Get<ItemConfig>(itemId);
            if (config == null)
            {
                m_Controller.m_Scorller.RefreshActiveCellViews();
                DisplayTokens();
                return;
            }
            if (packtype == PackType.rptItem)
            {
                if (model.trialTokens.Contains(itemId) || config.EquipPlace > 0)
                {
                    m_Controller.m_Scorller.RefreshActiveCellViews();
                    DisplayTokens();
                }
            }
            else if (packtype == PackType.rptEquip)
            {
@@ -215,6 +224,62 @@
            DisplayTokens();
            bool _up = m_SelectClassBehaviour.gameObject.activeSelf;
            m_SelectClassUp.transform.localEulerAngles = Vector3.zero.SetZ(_up ? 0 : 180);
            JumpToRedpoint();
        }
        private void JumpToRedpoint()
        {
            if (model.selectEquipClass == 1)
            {
                var trialClasses = model.GetTotalClass();
                var index = 0;
                for (int i = 0; i < trialClasses.Count; i++)
                {
                    var line = 0;
                    index += 1;
                    if (JumpToRedpoint(trialClasses[i], out line))
                    {
                        m_Controller.JumpIndex(index + line);
                        return;
                    }
                    else
                    {
                        List<TrialExchangeConfig> list;
                        if (model.TryGetTrialExchanges(trialClasses[i], out list))
                        {
                            index += Mathf.CeilToInt((float)list.Count / 3);
                        }
                    }
                }
            }
            else
            {
                var line = 0;
                JumpToRedpoint(model.selectEquipClass, out line);
                m_Controller.JumpIndex(line);
            }
        }
        private bool JumpToRedpoint(int _class, out int line)
        {
            var itemId = 0;
            line = 0;
            if (model.IsAnySatisfyExchangeBetterEquip(_class, out itemId))
            {
                List<TrialExchangeConfig> list;
                if (model.TryGetTrialExchanges(_class, out list))
                {
                    for (int i = 0; i < list.Count; i++)
                    {
                        if (list[i].id == itemId)
                        {
                            line = i / 3;
                            return true;
                        }
                    }
                }
            }
            return false;
        }
    }
System/MainInterfacePanel/HighSettingFadeInFadeOut.cs
@@ -498,7 +498,7 @@
                        }
                        if (!AnimationFadeOutDicLow.ContainsKey(highBtnRecord.Index))
                        {
                            if (isPlayerUIeffect.RedPointId == 201 || isPlayerUIeffect.RedPointId == 210)
                            if (isPlayerUIeffect.RedPointId == 201 /*|| isPlayerUIeffect.RedPointId == 210*/)//201(福利),210(仙宝寻主)
                            {
                                if (RedpointCenter.Instance.GetRedpointState(isPlayerUIeffect.RedPointId) == RedPointState.GetReward)
                                {
System/MainInterfacePanel/SkillTaskWin.cs
@@ -22,6 +22,7 @@
        [SerializeField] Button m_OpenNowBtn;
        [SerializeField] Button m_GoToBtn;
        [SerializeField] Button m_ClaoseBtn;
        [SerializeField] Image m_Image;//孔数
        PlayerMainDate m_MainModel;
        PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
        PlayerTaskDatas m_TaskModel;
@@ -56,6 +57,7 @@
            {
                int Index = mainModel.TaskId_Skill.IndexOf(mainModel.TaskSkillID);
                m_Text_Reward_1.text = string.Format(Language.Get("PassiveSkillTask1"), (mainModel.SkillIndex[Index] + 1));
                SetImageSprite(mainModel.SkillIndex[Index] + 1);
                m_NeedMoney_Text.text = string.Format(Language.Get("PassiveSkillTask2"), mainModel.NeedFairyJade[Index]);
            }
        }
@@ -118,6 +120,32 @@
            m_Text_Condition_1.ExcuteHref();
            // Close();
        }
        private void SetImageSprite(int Index)
        {
            switch (Index)
            {
                case 1:
                    m_Image.SetSprite("Slot_1");
                    break;
                case 2:
                    m_Image.SetSprite("Slot_2");
                    break;
                case 3:
                    m_Image.SetSprite("Slot_3");
                    break;
                case 4:
                    m_Image.SetSprite("Slot_4");
                    break;
                case 5:
                    m_Image.SetSprite("Slot_5");
                    break;
                case 6:
                    m_Image.SetSprite("Slot_6");
                    break;
            }
        }
        #endregion