少年修仙传客户端代码仓库
client_Zxw
2018-11-01 abe92a100d2fa69f696b7600086923bf0c147411
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
2个文件已添加
12个文件已修改
484 ■■■■ 已修改文件
Core/GameEngine/Model/Config/NPCConfig.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Status/StatusMgr.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzActiveWin.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzItemCell.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzModel.cs 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFairyLandWin.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/NormalDungeonEntranceWin.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralDefine.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/DogzNotifyBehaviour.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/DogzNotifyBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackSendQuestMgr.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PlayerPackModels.cs 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/InGamePushContainer.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/StatusTipWin.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/NPCConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Monday, August 20, 2018
//    [  Date ]:           Thursday, November 01, 2018
//--------------------------------------------------------
using UnityEngine;
@@ -69,6 +69,7 @@
        public int NPCEffect { get ; private set ; }
        public int NPCSpeakID { get ; private set ; }
        public int ClientRealm { get ; private set ; }
        public string Equips { get ; private set; }
        public override string getKey()
        {
@@ -198,6 +199,8 @@
                NPCSpeakID=IsNumeric(rawContents[56]) ? int.Parse(rawContents[56]):0; 
            
                ClientRealm=IsNumeric(rawContents[57]) ? int.Parse(rawContents[57]):0; 
                Equips = rawContents[58].Trim();
            }
            catch (Exception ex)
            {
Fight/Actor/Status/StatusMgr.cs
@@ -5,7 +5,7 @@
public class StatusMgr : SingletonMonobehaviour<StatusMgr>
{
    public static event UnityAction<string> OnGainStatus;
    public static event UnityAction<int> OnGainStatus;
    private Dictionary<uint, List<Status_Base>> m_StatusDict = null;
    private List<Status_Base> m_AllStatus = null;
@@ -149,11 +149,7 @@
            {
                if (OnGainStatus != null)
                {
                    SkillConfig _skillConfig = Config.Instance.Get<SkillConfig>(h0605.SkillID);
                    if (_skillConfig != null)
                    {
                        OnGainStatus(_skillConfig.SkillName);
                    }
                    OnGainStatus(h0605.SkillID);
                }
            }
        }
System/Dogz/DogzActiveWin.cs
@@ -333,16 +333,25 @@
                    {
                        assistEffect.Play();
                        assistTextEffect.Play();
                        model.SendChangeDogzAssist(1);
                        model.SendChangeDogzAssist(1,model.presentSelectDogz);
                    }
                    else
                    {
                        SysNotifyMgr.Instance.ShowTip("AssistDogzReachMax");
                        int minAssistDogzId = model.GetMinAssistDogzId();
                        if(model.presentSelectDogz > minAssistDogzId)
                        {
                            model.SendChangeDogzAssist(0,minAssistDogzId);
                            model.SendChangeDogzAssist(1,model.presentSelectDogz);
                        }
                        else
                        {
                            SysNotifyMgr.Instance.ShowTip("AssistDogzReachMax");
                        }
                    }
                }
                else
                {
                    model.SendChangeDogzAssist(0);
                    model.SendChangeDogzAssist(0,model.presentSelectDogz);
                }
              
            }
System/Dogz/DogzItemCell.cs
@@ -44,6 +44,7 @@
            itemBaisc.gameObject.SetActive(true);
            itemBaisc.Init(model,true);
            itemBaisc.stateIcon.gameObject.SetActive(dogzModel.IsReachPutlimit(dogzModel.presentSelectDogz, model.itemId));
            itemBaisc.bindIcon.gameObject.SetActive(false);
            itemBaisc.cellBtn.RemoveAllListeners();
            itemBaisc.cellBtn.AddListener(()=>
System/Dogz/DogzModel.cs
@@ -374,6 +374,20 @@
            return state == 0 ? false : true;
        }
        public int GetMinAssistDogzId()
        {
            int minAssistId = 0;
            foreach (var dogzId in dogzAssistStateDict.Keys)
            {
                if (TryGetAssistDogzState(dogzId)
                    && ((minAssistId > dogzId && minAssistId != 0) || minAssistId == 0))
                {
                    minAssistId = dogzId;
                }
            }
            return minAssistId;
        }
        public void SetDogzEquipInfo()
        {
            m_DogzEquipDict.Clear();
@@ -535,6 +549,11 @@
            return (index % 5) + 101;
        }
        public int GetDogzIndexByPlace(int place)
        {
            return (place / 100) - 1;
        }
        public int GetDogzIDByIndex(int index)
        {
            return (index / 5) + 1;
@@ -632,10 +651,10 @@
            GameNetSystem.Instance.SendInfo(dogzPutOff);
        }
        public void SendChangeDogzAssist(int assistState)
        public void SendChangeDogzAssist(int assistState,int dogzId)
        {
            CA5C2_tagCMDogzBattleStateChange stateChange = new CA5C2_tagCMDogzBattleStateChange();
            stateChange.DogzID = (byte)presentSelectDogz;
            stateChange.DogzID = (byte)dogzId;
            stateChange.BatteState = (byte)assistState;
            GameNetSystem.Instance.SendInfo(stateChange);
        }
@@ -763,6 +782,16 @@
            return selectEquipPlacelist;
        }
        public bool IsReachPutlimit(int dogzId,int itemId)
        {
            ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(itemId);
            if (itemConfig == null) return true;
            var index = GetDogzIndexByPlace(itemConfig.EquipPlace);
            var _itemColor = GetDogzEquipLimitByIndex(dogzId, index);
            return itemConfig.ItemColor >= _itemColor ? true : false;
        }
        private int CompareByDogzItem(ItemModel start,ItemModel end)
        {
            int x = start.chinItemModel.ItemColor;
@@ -887,15 +916,7 @@
            }
         
            bool isMaxAssistNum = GetAssistDogzCount() >= curSumAssistNum ? true : false;
            int minAlreadyAssistId = 0;
            foreach (var dogzId in m_DogzEquipLimit.Keys)
            {
                if (TryGetAssistDogzState(dogzId)
                    && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
                {
                    minAlreadyAssistId = dogzId;
                }
            }
            int minAlreadyAssistId = GetMinAssistDogzId();
            if (!isMaxAssistNum)
            {
@@ -940,8 +961,12 @@
            }
        }
        public event Action UpdateDogzPutRedEvent;
        public int dogzPutRedId { get;set; }
        public void UpdateDogzEquipPlaceRed()
        {
            dogzPutRedId = 0;
            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Dogz)) return;
            foreach (var value in dogzEquipPlaceRedDict.Values)
@@ -959,13 +984,16 @@
                    return;
                }
            }
            int minAssistDogzId = GetMinAssistDogzId();
            bool isMaxAssistNum = GetAssistDogzCount() >= curSumAssistNum ? true : false;
            List<int> dogzIdlist = GetDogzIdByOrder();
            if (!isMaxAssistNum)
            {
                int maxEquipNum = 0;
                int spaceDogzId = 0;
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                for(int i = 0; i < dogzIdlist.Count; i++)
                {
                    int dogzId = dogzIdlist[i];
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    if (equipNum < 5)
@@ -1003,6 +1031,7 @@
                                Redpoint equipPlaceRedpoint = GetDogzEquipPlaceRedpointById(spaceDogzId,i);
                                if(equipPlaceRedpoint.state == RedPointState.None)
                                {
                                    dogzPutRedId = spaceDogzId;
                                    equipPlaceRedpoint.state = RedPointState.Simple;
                                }
                                break;
@@ -1013,16 +1042,7 @@
            }
            else
            {
                int minAlreadyAssistId = 0;
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    if(TryGetAssistDogzState(dogzId)
                        && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
                    {
                        minAlreadyAssistId = dogzId;
                    }
                }
                int minAlreadyAssistId = GetMinAssistDogzId();
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
@@ -1061,6 +1081,7 @@
                                Redpoint equipPlaceRedpoint = GetDogzEquipPlaceRedpointById(dogzId, i);
                                if (equipPlaceRedpoint.state == RedPointState.None)
                                {
                                    dogzPutRedId = dogzId;
                                    equipPlaceRedpoint.state = RedPointState.Simple;
                                    break;
                                }
@@ -1070,6 +1091,38 @@
                    }
                }
            }
            if(UpdateDogzPutRedEvent != null)
            {
                UpdateDogzPutRedEvent();
            }
        }
        public List<int> GetDogzIdByOrder()
        {
            List<int> dogzIdlist = m_DogzEquipLimit.Keys.ToList();
            int minAssistDogzId = GetMinAssistDogzId();
            if (minAssistDogzId == 0) return dogzIdlist;
            List<int> orderlist = new List<int>();
            for(int i = 0; i < dogzIdlist.Count; i++)
            {
                int dogzId = dogzIdlist[i];
                if(dogzId > minAssistDogzId)
                {
                    orderlist.Add(dogzId);
                }
            }
            for (int i = dogzIdlist.Count - 1; i > -1; i--)
            {
                int dogzId = dogzIdlist[i];
                if(!orderlist.Contains(dogzId))
                {
                    orderlist.Add(dogzId);
                }
            }
            return orderlist;
        }
        public void UpdateAssistNumRed()
@@ -1088,6 +1141,7 @@
                addAssistDogzRedpoint.state = RedPointState.None;
            }
        }
        #endregion
    }
}
System/Dungeon/DungeonFairyLandWin.cs
@@ -17,6 +17,12 @@
        [SerializeField]
        List<Text> targetTextList;
        [SerializeField] RectTransform m_FairyLandUpperBehaviour;
        [SerializeField] Text m_FairyLandUpperTip;
        [SerializeField] PositionTween m_PositionTween;
        [SerializeField] ScaleTween m_ScaleTween;
        [SerializeField] RectTransform[] m_MoveRects;
        DungeonModel m_Model;
        DungeonModel model
        {
@@ -64,14 +70,17 @@
        protected override void OnPreOpen()
        {
            m_FairyLandUpperBehaviour.gameObject.SetActive(false);
            SetTween(m_PositionTween, m_ScaleTween, 0);
            StageChangeEvent();
            MyTeamRefreshEvent();
            DungeonEncourageEvent();
            UpdateBuf();
            model.dungeonFairyLandChangeEvent += StageChangeEvent;
            model.dungeonInspireLvEvent += DungeonEncourageEvent;
            PlayerBuffDatas.Even_ObjAddBuf += UpdateBuf;
            PlayerBuffDatas.Even_ObjDelBuff += UpdateBuf;
            PlayerBuffDatas.Even_ObjAddBuf += AddBuff;
            PlayerBuffDatas.Even_ObjDelBuff += DeleteBuff;
            teamModel.myTeamRefreshEvent += MyTeamRefreshEvent;
        }
@@ -93,6 +102,12 @@
                _teamOnlineCnt == 0 ? "<color=#ff2828>" : "<color=#00ff00>", Mathf.Max(0, _teamOnlineCnt - 1) * 10, "%</color>");
        }
        protected override void OnActived()
        {
            base.OnActived();
            DisplayBuff();
        }
        protected override void OnAfterOpen()
        {
        }
@@ -101,8 +116,8 @@
        {
            model.dungeonFairyLandChangeEvent -= StageChangeEvent;
            model.dungeonInspireLvEvent -= DungeonEncourageEvent;
            PlayerBuffDatas.Even_ObjAddBuf -= UpdateBuf;
            PlayerBuffDatas.Even_ObjDelBuff -= UpdateBuf;
            PlayerBuffDatas.Even_ObjAddBuf -= AddBuff;
            PlayerBuffDatas.Even_ObjDelBuff -= DeleteBuff;
            teamModel.myTeamRefreshEvent -= MyTeamRefreshEvent;
        }
@@ -124,6 +139,18 @@
            var level = model.GetDungeonInspireLevel();
            targetTextList[3].text = level == 0 ? StringUtility.Contact(Language.Get("FairyLand_Func3"), ":", Language.Get("FairyLand_Func4"))
                : StringUtility.Contact(Language.Get("FairyLand_Func3"), ":<color=#00ff00>", level * model.GetDungeonInspireUpper(31080), "%</color>");
        }
        private void AddBuff()
        {
            UpdateBuf();
            DisplayBuff();
        }
        private void DeleteBuff()
        {
            UpdateBuf();
            DisplayBuff();
        }
        private void UpdateBuf()
@@ -149,6 +176,67 @@
            }
            targetTextList[4].text = StringUtility.Contact(Language.Get("FairyLand_Func1"), ":", Language.Get("FairyLand_Func2"));
        }
        private void DisplayBuff()
        {
            var gainBuff = Buffmodel._BuffDic.ContainsKey(GeneralDefine.fairyLandBuffId);
            var config = Config.Instance.Get<SkillConfig>(GeneralDefine.fairyLandBuffId);
            if (config != null)
            {
                m_FairyLandUpperTip.text = UIHelper.ReplaceNewLine(Language.Get("XjmjAddHarm2",
                    GeneralDefine.fairyLandBuffCondition, config.EffectValue11 / 10000 + 1));
            }
            if (!gainBuff)
            {
                if (m_FairyLandUpperBehaviour.gameObject.activeSelf)
                {
                    m_FairyLandUpperBehaviour.gameObject.SetActive(false);
                }
            }
            else
            {
                if (!m_FairyLandUpperBehaviour.gameObject.activeSelf)
                {
                    SetTween(m_PositionTween, m_ScaleTween, 0);
                    m_FairyLandUpperBehaviour.gameObject.SetActive(true);
                    m_PositionTween.Play(OnPositionTweenComplete);
                }
            }
        }
        private void OnPositionTweenComplete()
        {
            SetTween(m_PositionTween, m_ScaleTween, 1);
            m_PositionTween.Play();
            m_ScaleTween.Play();
        }
        private void SetTween(PositionTween _posTween, ScaleTween _scaleTween, int index)
        {
            _posTween.from = m_MoveRects[index].localPosition;
            _posTween.to = m_MoveRects[index + 1].localPosition;
            _posTween.duration = index == 0 ? 2f : 1f;
            _posTween.delay = index == 0 ? 0 : 1.0f;
            _posTween.SetStartState();
            if (index == 0)
            {
                _scaleTween.SetStartState();
            }
            else
            {
                _scaleTween.delay = 1.0f;
            }
        }
#if UNITY_EDITOR
        [ContextMenu("Test")]
        void Test()
        {
            SetTween(m_PositionTween, m_ScaleTween, 0);
            m_FairyLandUpperBehaviour.gameObject.SetActive(true);
            m_PositionTween.Play(OnPositionTweenComplete);
        }
#endif
    }
}
System/Dungeon/NormalDungeonEntranceWin.cs
@@ -51,6 +51,9 @@
        [SerializeField] RectTransform m_ContainerGroup;
        [SerializeField] RectTransform m_FairyLandTipBehaviour;
        [SerializeField] Text m_FairyLandTip;
        DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
@@ -75,6 +78,7 @@
            DrawDungeonBaseInfo();
            DrawSweepInfo();
            DrawDungeonTicketInfo();
            DisplayFairyLandTip();
            m_BreifInfo.SetDungeonInfo(model.currentDungeon);
        }
@@ -83,6 +87,8 @@
            playerPack.RefreshItemCountAct += OnPackageItemChange;
            model.updateDungeonEnterCD += UpdateDungeonEnterCD;
            m_EnterCdContainer.OnCdComplete += UpdateDungeonEnterCD;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
            PlayerDatas.Instance.OnRoleAttrRefresh += OnWorldLevelRefresh;
        }
        protected override void OnPreClose()
@@ -90,6 +96,8 @@
            playerPack.RefreshItemCountAct -= OnPackageItemChange;
            model.updateDungeonEnterCD -= UpdateDungeonEnterCD;
            m_EnterCdContainer.OnCdComplete -= UpdateDungeonEnterCD;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
            PlayerDatas.Instance.OnRoleAttrRefresh -= OnWorldLevelRefresh;
        }
        protected override void OnAfterClose()
@@ -116,6 +124,7 @@
            bool _cd = model.HasEnterCD(dungeonConfig.DataMapID) && model.IsEnterCountDowning(dungeonConfig.DataMapID);
            m_EnterCdContainer.gameObject.SetActive(_cd);
            m_ContainerBtns.gameObject.SetActive(!_cd);
            DisplayFairyLandTip();
        }
        private void DrawDungeonBaseInfo()
@@ -421,6 +430,34 @@
            }
        }
        private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType)
        {
            if (refreshType == PlayerDataRefresh.LV)
            {
                DisplayFairyLandTip();
            }
        }
        private void OnWorldLevelRefresh()
        {
            DisplayFairyLandTip();
        }
        private void DisplayFairyLandTip()
        {
            var dungeonId = model.GetDungeonId(model.currentDungeon);
            var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
            bool cd = model.HasEnterCD(dungeonConfig.DataMapID) && model.IsEnterCountDowning(dungeonConfig.DataMapID);
            var satisfy = (PlayerDatas.Instance.baseData.LV + GeneralDefine.fairyLandBuffCondition) <= PlayerDatas.Instance.worldLv && !cd;
            m_FairyLandTipBehaviour.gameObject.SetActive(satisfy);
            var config = Config.Instance.Get<SkillConfig>(GeneralDefine.fairyLandBuffId);
            if (config != null)
            {
                m_FairyLandTip.text = UIHelper.ReplaceNewLine(Language.Get("XjmjAddHarm1",
                    GeneralDefine.fairyLandBuffCondition, config.EffectValue11 / 10000 + 1));
            }
        }
    }
}
System/GeneralConfig/GeneralDefine.cs
@@ -149,6 +149,9 @@
    public static int medQualityCount { get; private set; }
    public static int highQualityCount { get; private set; }
    public static int fairyLandBuffCondition { get; private set; }
    public static int fairyLandBuffId { get; private set; }
    public static void Init()
    {
        try
@@ -521,6 +524,9 @@
            lowQualityCount = int.Parse(func.Numerical1);
            medQualityCount = int.Parse(func.Numerical2);
            highQualityCount = int.Parse(func.Numerical3);
            fairyLandBuffCondition = GetInt("XjmjAddHarm", 1);
            fairyLandBuffId = GetInt("XjmjAddHarm", 2);
        }
        catch (Exception ex)
        {
System/KnapSack/DogzNotifyBehaviour.cs
New file
@@ -0,0 +1,54 @@
using System;
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI
{
    public class DogzNotifyBehaviour : MonoBehaviour
    {
        [SerializeField] Text titleText;
        [SerializeField] Image dogzImg;
        [SerializeField] Button gotoBtn;
        [SerializeField] Button closeBtn;
        DogzModel dogzModel { get { return ModelCenter.Instance.GetModel<DogzModel>(); } }
        private void OnEnable()
        {
            closeBtn.AddListener(CloseNotify);
            gotoBtn.AddListener(ClickGoto);
        }
        private void OnDisable()
        {
            closeBtn.RemoveAllListeners();
            gotoBtn.RemoveAllListeners();
        }
        public void SetDisplay()
        {
            DogzConfig dogzConfig = Config.Instance.Get<DogzConfig>(dogzModel.dogzPutRedId);
            if(dogzConfig == null)
            {
                CloseNotify();
            }
            else
            {
                this.gameObject.SetActive(true);
                dogzImg.SetSprite(dogzConfig.HeadIcon);
            }
        }
        private void ClickGoto()
        {
            WindowCenter.Instance.Open<DogzWin>();
            CloseNotify();
        }
        public void CloseNotify()
        {
            dogzModel.dogzPutRedId = 0;
            this.gameObject.SetActive(false);
        }
    }
}
System/KnapSack/DogzNotifyBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 02dfbf58d32aa544aa139b28100aa5d2
timeCreated: 1541055844
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -703,7 +703,7 @@
            }
            int dungeonID = playerPack.GetDungeonIDByDrugID(useItemModel.itemInfo.ItemID);
            if (dungeonID != 0 && useItemModel.chinItemModel.Type == (int)ItemType.Buff)
            if (dungeonID != 0)
            {
                MapConfig tagMapModel = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
                if (tagMapModel.MapFBType == 0)
System/KnapSack/Logic/PlayerPackModels.cs
@@ -621,6 +621,7 @@
        public int wingsRedpointLvlimt { get; private set; }
        public int fairyGetPathId { get; private set; }
        public Dictionary<int, int> wingsGetPathIdDict { get; private set;}
        public Dictionary<int, List<int>> dungeonUseDict { get; private set; }
        public void ParseConfig()
        {
            FuncConfigConfig funcConfig = Config.Instance.Get<FuncConfigConfig>("WingYuPeiHQTJ");
@@ -628,6 +629,22 @@
            wingsRedpointLvlimt = int.Parse(funcConfig.Numerical2);
            fairyGetPathId = int.Parse(funcConfig.Numerical3);
            wingsGetPathIdDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical4);
            FuncConfigConfig copyItemBulletWindow = Config.Instance.Get<FuncConfigConfig>("CopyItemBulletWindow");
            JsonData copyWinData = JsonMapper.ToObject(copyItemBulletWindow.Numerical1);
            dungeonUseDict = new Dictionary<int, List<int>>();
            foreach (var dungeonId in copyWinData.Keys)
            {
                List<int> idlist = new List<int>();
                dungeonUseDict.Add(int.Parse(dungeonId),idlist);
                if(copyWinData[dungeonId].IsArray)
                {
                    JsonData useData = copyWinData[dungeonId];
                    for(int i = 0; i < useData.Count; i++)
                    {
                        idlist.Add(int.Parse(useData[i].ToString()));
                    }
                }
            }
        }
        public int GetRoleEquipPathId(int equipPlace)
@@ -1205,32 +1222,10 @@
            }
            cacheMapId = PlayerDatas.Instance.baseData.MapID;
            int[] useDrugs = GetDrugIDListByDungeonID(cacheMapId);
            if (useDrugs == null) return;
            UpdateDungeonDanUse();
            UpdateDungeonUse();
            SinglePackModel singlePack = GetSinglePackModel(PackType.rptItem);
            for(int i = 0; i < useDrugs.Length; i++)
            {
                SkillConfig skillConfig = GetSkillConfig(useDrugs[i]);
                if(skillConfig != null)
                {
                    if(!itemUseTypeDict.ContainsKey(skillConfig.SkillTypeID))
                    {
                        itemUseTypeDict.Add(skillConfig.SkillTypeID,useDrugs[i]);
                    }
                    else
                    {
                        SkillConfig preSkillConfig = GetSkillConfig(itemUseTypeDict[skillConfig.SkillTypeID]);
                        if(skillConfig.SkillLV > preSkillConfig.SkillLV)
                        {
                            itemUseTypeDict[skillConfig.SkillTypeID] = useDrugs[i];
                        }
                    }
                }
            }
            foreach(int itemId in itemUseTypeDict.Values)
            foreach (int itemId in itemUseTypeDict.Values)
            {
                List<ItemModel> modellist = null;
                singlePack.GetItemCountByID(itemId, out modellist);
@@ -1247,6 +1242,53 @@
            }
        }
        private void AddItemUseTypeDict(int id)
        {
            SkillConfig skillConfig = GetSkillConfig(id);
            int itemCount = GetItemCountByID(PackType.rptItem, id);
            if (skillConfig != null && itemCount > 0)
            {
                if (!itemUseTypeDict.ContainsKey(skillConfig.SkillTypeID))
                {
                    itemUseTypeDict.Add(skillConfig.SkillTypeID,id);
                }
                else
                {
                    SkillConfig preSkillConfig = GetSkillConfig(itemUseTypeDict[skillConfig.SkillTypeID]);
                    if (skillConfig.SkillLV > preSkillConfig.SkillLV)
                    {
                        itemUseTypeDict[skillConfig.SkillTypeID] = id;
                    }
                }
            }
        }
        private void UpdateDungeonDanUse()
        {
            int mapId = PlayerDatas.Instance.baseData.MapID;
            int[] useDrugs = GetDrugIDListByDungeonID(mapId);
            if (useDrugs == null) return;
            for (int i = 0; i < useDrugs.Length; i++)
            {
                int id = useDrugs[i];
                AddItemUseTypeDict(id);
            }
        }
        private void UpdateDungeonUse()
        {
            int mapId = PlayerDatas.Instance.baseData.MapID;
            if (!dungeonUseDict.ContainsKey(mapId)) return;
            List<int> useIdlist = dungeonUseDict[mapId];
            for(int i = 0; i < useIdlist.Count; i++)
            {
                int id = useIdlist[i];
                AddItemUseTypeDict(id);
            }
        }
        public SkillConfig GetSkillConfig(int itemId)
        {
            ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(itemId);
System/MainInterfacePanel/InGamePushContainer.cs
@@ -25,6 +25,7 @@
        [SerializeField] DungeonGuardCheckBehaviour m_DungeonGuardBehaviour;
        [SerializeField] FirstChargeTrialBehaviour m_FirstChargeTrialBehaviour;
        [SerializeField] FairyGrabBossHelpBehaviour m_FairyGrabBossHelpBehaviour;
        [SerializeField] DogzNotifyBehaviour m_DogzNotifyBehaviour;
        WorldBossModel worldBossModel { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } }
        BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
@@ -46,6 +47,8 @@
        GuardModel guardModel { get { return ModelCenter.Instance.GetModel<GuardModel>(); } }
        FirstTimeRechargeModel firstTimeRechargeModel { get { return ModelCenter.Instance.GetModel<FirstTimeRechargeModel>(); } }
        FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        DogzModel dogzModel { get { return ModelCenter.Instance.GetModel<DogzModel>(); } }
        public void Init()
        {
            CheckBetterEquip();
@@ -60,6 +63,7 @@
            CheckDungeonGuard();
            FirstChargeTrialShow();
            CheckFairyGrabBossHelp();
            CheckDogzNotify();
            playerPack.RefreshDecomAttrAct += CheckEquipDecompose;
            betterEquipGetModel.showEquipRefreshEvent += CheckBetterEquip;
            realmEquipModel.showEquipRefreshEvent += CheckRealmBetterEquip;
@@ -71,6 +75,7 @@
            guardModel.onDungeonEquipGuardEvent += CheckDungeonGuard;
            firstTimeRechargeModel.IsTipShowEvent += FirstChargeTrialShow;
            fairyGrabBossModel.fairyGrabBossHelpUpdate += CheckFairyGrabBossHelp;
            dogzModel.UpdateDogzPutRedEvent += CheckDogzNotify;
        }
        public void UnInit()
@@ -86,6 +91,7 @@
            firstTimeRechargeModel.IsTipShowEvent -= FirstChargeTrialShow;
            realmEquipModel.showEquipRefreshEvent -= CheckRealmBetterEquip;
            fairyGrabBossModel.fairyGrabBossHelpUpdate -= CheckFairyGrabBossHelp;
            dogzModel.UpdateDogzPutRedEvent -= CheckDogzNotify;
        }
        private void CheckRealmBetterEquip()
@@ -128,6 +134,11 @@
            }
        }
        private void CheckDogzNotify()
        {
            m_DogzNotifyBehaviour.SetDisplay();
        }
        private void CheckPreciousItem()
        {
            if (preciousItemGetModel.currentShowItem == default(PreciousItemGetModel.PreciousItem))
System/Tip/StatusTipWin.cs
@@ -6,6 +6,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
@@ -35,6 +36,11 @@
        private float m_TopLimit;
        bool inited = false;
        [SerializeField] RectTransform m_ContainerSpecialBuff;
        [SerializeField] PositionTween m_SpeicalBuffTween;
        [SerializeField] UIAlphaTween m_SpecialBuffAlplaTween;
        [SerializeField] int m_SpecialBuffId;
        #region Built-in
        protected override void BindController()
        {
@@ -54,6 +60,7 @@
                m_FreeList.Push(m_TipList[i]);
            }
            m_TipList.Clear();
            m_ContainerSpecialBuff.gameObject.SetActive(false);
        }
        protected override void LateUpdate()
@@ -162,7 +169,23 @@
        #endregion
        private void OnGainStatus(string buffName)
        private void OnGainStatus(int skillId)
        {
            var skillConfig = Config.Instance.Get<SkillConfig>(skillId);
            if (skillConfig != null)
            {
                if (skillConfig.SkillTypeID == m_SpecialBuffId)
                {
                    DisplaySpecialTip();
                }
                else
                {
                    DisplayLabelTip(skillConfig.SkillName);
                }
            }
        }
        void DisplayLabelTip(string buffName)
        {
            TipController _newController = null;
            if (m_FreeList.Count > 0)
@@ -192,6 +215,28 @@
            m_MoveTime += moveDuration;
        }
        void DisplaySpecialTip()
        {
            transform.SetAsLastSibling();
            m_SpeicalBuffTween.SetStartState();
            m_SpecialBuffAlplaTween.SetStartState();
            m_SpeicalBuffTween.enabled = false;
            m_SpecialBuffAlplaTween.enabled = false;
            m_ContainerSpecialBuff.gameObject.SetActive(true);
            m_SpeicalBuffTween.enabled = true;
            m_SpeicalBuffTween.Play(OnSpecialBuffComplete);
        }
        private void OnSpecialBuffComplete()
        {
            m_SpecialBuffAlplaTween.enabled = true;
            m_SpecialBuffAlplaTween.Play(OnSpecialBuffAlphaComplete);
        }
        private void OnSpecialBuffAlphaComplete()
        {
            m_ContainerSpecialBuff.gameObject.SetActive(false);
        }
    }