少年修仙传客户端代码仓库
client_Hale
2018-09-25 f2cd8cf71a54e251e5f507c7d69c6f91f90e5074
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
42个文件已修改
1007 ■■■■ 已修改文件
Core/GameEngine/Model/TelPartialConfig/tagItemCompoundConfig.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/BlastFurnaceModel.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/BlastFurnaceWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCenter.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCtrl.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatTip.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ClientVersion/VersionUpdateWin.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ClientVersion/VersionUtility.cs 146 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Compose/New/ComposeWin.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Compose/New/ComposeWinModel.cs 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestBehaviour.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzPackWin.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonModel.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyAuTaskWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/BoxGetItemWin.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PlayerPackModels.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/New/KnapSackWin.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/LoginModel.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/LoginWin.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FeatureNoticeModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FeatureNoticeWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/HighSettingTip.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskBoxBGMWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskListTip.cs 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Market/PutawayWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Mount/PlayerMountDatas.cs 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactRankWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Pet/PlayerPetDatas.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PlayerDead/PlayerDeadModel.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PlayerDead/RebornWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmUpWin.cs 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/SkillModel.cs 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/SkillPassWin.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/PetAndMountPushWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/StoreModel.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/StoreWin.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/WingsRedDot.cs 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasurePotentialPanel.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/tagItemCompoundConfig.cs
@@ -140,6 +140,21 @@
            return null;
        }
        public static ItemCompoundConfig GetItemCompoundByType(int firstType,int secondType, int thirdType)
        {
            if(allComposeModelDict.ContainsKey(firstType))
            {
                if(allComposeModelDict[firstType].ContainsKey(secondType))
                {
                    if(allComposeModelDict[firstType][secondType].ContainsKey(thirdType))
                    {
                        return allComposeModelDict[firstType][secondType][thirdType][0];
                    }
                }
            }
            return null;
        }
        public static bool TryGetTicketCompose(int _ticketId, out List<ItemCompoundConfig> list)
        {
            return ticketComposeDict.TryGetValue(_ticketId, out list);
System/BlastFurnace/BlastFurnaceModel.cs
@@ -10,7 +10,7 @@
public class BlastFurnaceModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
{
    public BlastFurnaceFuncTitle funcTitle = BlastFurnaceFuncTitle.MakeDan;
    private int makeDrugRedLv;
    public Action<AlchemySpecConfig> RefreshAddSpecMatEvent;
    private TreasureModel _model;
@@ -64,6 +64,8 @@
        }
        alchemyModellist = Config.Instance.GetAllValues<AlchemyConfig>();
        FuncConfigConfig alchemyRedPoint = Config.Instance.Get<FuncConfigConfig>("AlchemyRedPoint");
        int.TryParse(alchemyRedPoint.Numerical1,out makeDrugRedLv);
        SetDandrugRedPointlist();
        GlobalTimeEvent.Instance.secondEvent += SecondUpdate;
    }
@@ -757,11 +759,11 @@
        bool isCheckRed = false;
        if(!isClick)
        {
            if(PlayerDatas.Instance.baseData.LV <= 151)
            if(PlayerDatas.Instance.baseData.LV <= makeDrugRedLv)
            {
                isCheckRed = true;
            }
            else if(PlayerDatas.Instance.baseData.LV > 151 && !isLogin && !IsMakeDrugWin)
            else if(PlayerDatas.Instance.baseData.LV > makeDrugRedLv && !isLogin && !IsMakeDrugWin)
            {
                isCheckRed = true;
            }
@@ -790,7 +792,7 @@
        }
        else
        {
            if(PlayerDatas.Instance.baseData.LV > 151)
            if(PlayerDatas.Instance.baseData.LV > makeDrugRedLv)
            {
                MakeDrugRedpoint.state = RedPointState.None;
            }
@@ -1361,6 +1363,7 @@
{
    MakeDan,  //炼丹
    AttrDan,  //丹药属性
    DrugStore, //回收商店
}
System/BlastFurnace/BlastFurnaceWin.cs
@@ -94,6 +94,9 @@
                case BlastFurnaceFuncTitle.AttrDan:
                    _treasureRefineTitle.state = TitleBtnState.Click;
                    break;
                case BlastFurnaceFuncTitle.DrugStore:
                    _storeTitle.state = TitleBtnState.Click;
                    break;
            }
          
        }
@@ -137,6 +140,7 @@
        private void OnClickStoreTitle()
        {
            FurnaceModel.funcTitle = BlastFurnaceFuncTitle.DrugStore;
            _lingDanTips.SetActive(false);
            attrDanTips.SetActive(false);
            storeTips.SetActive(true);
System/Chat/ChatCenter.cs
@@ -49,8 +49,10 @@
            chatChannels.Add(ChatInfoType.System);
            chatChannels.Add(ChatInfoType.World);
            chatChannels.Add(ChatInfoType.Area);
            chatChannels.Add(ChatInfoType.Team);
            chatChannels.Add(ChatInfoType.Invite);
            chatChannels.Add(ChatInfoType.Trumpet);
            chatChannels.Add(ChatInfoType.Fairy);
            chatChannels.Add(ChatInfoType.Friend);
        }
@@ -708,7 +710,7 @@
            CheckChatFloatOpen();
            if (win is MainInterfaceWin)
            {
                CheckOpenChatAfterCollect();
                SnxxzGame.Instance.StartCoroutine(Co_CheckAfterCollect());
            }
        }
@@ -744,6 +746,12 @@
            CheckOpenChatAfterCollect();
        }
        IEnumerator Co_CheckAfterCollect()
        {
            yield return null;
            CheckOpenChatAfterCollect();
        }
        void CheckOpenChatAfterCollect()
        {
            if (!openChatAfterCollect)
@@ -754,7 +762,7 @@
            {
                return;
            }
            if (!WindowCenter.Instance.Open<MainInterfaceWin>()
            if (!WindowCenter.Instance.CheckOpen<MainInterfaceWin>()
                || WindowCenter.Instance.ExitAnyFullScreenOrMaskWin()
                || StageManager.Instance.isLoading
                || NewBieCenter.Instance.inGuiding)
@@ -762,11 +770,10 @@
                return;
            }
            openChatAfterCollect = false;
            if (!WindowCenter.Instance.CheckOpen<SocialWin>())
            if (!WindowCenter.Instance.CheckOpen<ChatWin>())
            {
                ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
                WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
                WindowCenter.Instance.Open<SocialWin>();
                WindowCenter.Instance.Open<ChatWin>();
            }
        }
        #endregion
System/Chat/ChatCtrl.cs
@@ -1029,13 +1029,15 @@
        switch (type)
        {
            case ChatInfoType.Team:
                if (!WindowCenter.Instance.CheckOpen<TeamChatWin>())
                if (!WindowCenter.Instance.CheckOpen<TeamChatWin>()
                    && (!WindowCenter.Instance.CheckOpen<ChatWin>() || presentChatType != ChatInfoType.Team))
                {
                    unReadChatCounts[ChatInfoType.Team] = Mathf.Min(unReadChatCounts[ChatInfoType.Team] + 1, 99);
                }
                break;
            case ChatInfoType.Fairy:
                if (!WindowCenter.Instance.CheckOpen<FairyChatWin>())
                if (!WindowCenter.Instance.CheckOpen<FairyChatWin>()
                    && (!WindowCenter.Instance.CheckOpen<ChatWin>() || presentChatType != ChatInfoType.Fairy))
                {
                    unReadChatCounts[ChatInfoType.Fairy] = Mathf.Min(unReadChatCounts[ChatInfoType.Fairy] + 1, 99);
                }
System/Chat/ChatTip.cs
@@ -145,7 +145,7 @@
    private void OnChatClick()
    {
        if (WindowCenter.Instance.CheckOpen<ChatWin>() || WindowCenter.Instance.CheckOpen<SocialWin>())
        if (WindowCenter.Instance.CheckOpen<ChatWin>())
        {
            return;
        }
@@ -154,9 +154,6 @@
        if (mapId == 31230)
        {
            ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
            WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
            WindowCenter.Instance.Open<SocialWin>();
            return;
        }
        WindowCenter.Instance.Open<ChatWin>();
    }
@@ -214,7 +211,7 @@
    void OnChatDataClick(ChatData data)
    {
        if (WindowCenter.Instance.CheckOpen<ChatWin>() || WindowCenter.Instance.CheckOpen<SocialWin>())
        if (WindowCenter.Instance.CheckOpen<ChatWin>())
        {
            return;
        }
@@ -224,20 +221,7 @@
        {
            ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
        }
        switch (ChatCtrl.Inst.presentChatType)
        {
            case ChatInfoType.Team:
                WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
                WindowCenter.Instance.Open<SocialWin>(false, 2);
                break;
            case ChatInfoType.Fairy:
                WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
                WindowCenter.Instance.Open<SocialWin>();
                break;
            default:
                WindowCenter.Instance.Open<ChatWin>();
                break;
        }
        WindowCenter.Instance.Open<ChatWin>();
    }
    void OnRefreshChatTip(ChatInfoType type)
System/Chat/ChatWin.cs
@@ -170,6 +170,7 @@
                    break;
            }
            m_ChatContent.chatType = ChatCtrl.Inst.presentChatType;
            ChatCtrl.Inst.ViewChat(ChatCtrl.Inst.presentChatType);
        }
        private void OnChannelSelect(CellView _cell)
System/ClientVersion/VersionUpdateWin.cs
@@ -16,7 +16,9 @@
    public class VersionUpdateWin : Window
    {
        [SerializeField] RectTransform m_ContainerHint;
        [SerializeField] RichText m_Content;
        [SerializeField] RichText m_HintDescription;
        [SerializeField] RectTransform m_UpdateContentContainer;
        [SerializeField] RichText m_UpdateCotent;
        [SerializeField] Button m_Confirm;
        [SerializeField] Transform m_ContainerProgress;
@@ -108,14 +110,13 @@
        private void DisplayHintContent()
        {
            var step = VersionUtility.Instance.step;
            switch (step)
            {
                case VersionUtility.Step.None:
                    m_Content.text = Language.GetFromLocal(4);
                    m_HintDescription.text = Language.GetFromLocal(4);
                    break;
                case VersionUtility.Step.ApkExist:
                    m_Content.text = Language.GetFromLocal(5);
                    m_HintDescription.text = Language.GetFromLocal(5);
                    break;
                case VersionUtility.Step.DownLoadPrepared:
                    if (Application.platform == RuntimePlatform.Android)
@@ -125,28 +126,49 @@
                        switch (Application.internetReachability)
                        {
                            case NetworkReachability.NotReachable:
                                m_Content.text = Language.GetFromLocal(6, sizeDescription);
                                m_HintDescription.text = Language.GetFromLocal(6, sizeDescription);
                                break;
                            case NetworkReachability.ReachableViaCarrierDataNetwork:
                                m_Content.text = Language.GetFromLocal(7, sizeDescription);
                                m_HintDescription.text = Language.GetFromLocal(7, sizeDescription);
                                break;
                            case NetworkReachability.ReachableViaLocalAreaNetwork:
                                m_Content.text = Language.GetFromLocal(8, sizeDescription);
                                m_HintDescription.text = Language.GetFromLocal(8, sizeDescription);
                                break;
                        }
                    }
                    else if (Application.platform == RuntimePlatform.IPhonePlayer)
                    {
                        m_Content.text = Language.GetFromLocal(9);
                        m_HintDescription.text = Language.GetFromLocal(9);
                    }
                    break;
                case VersionUtility.Step.DownLoad:
                    m_Content.text = Language.GetFromLocal(3);
                    m_HintDescription.text = Language.GetFromLocal(3);
                    break;
                case VersionUtility.Step.DownLoadFailed:
                    m_Content.text = Language.GetFromLocal(10);
                    m_HintDescription.text = Language.GetFromLocal(10);
                    break;
            }
            switch (step)
            {
                case VersionUtility.Step.ApkExist:
                case VersionUtility.Step.DownLoadPrepared:
                    var updateContent = VersionUtility.Instance.GetUpdateContent();
                    if (string.IsNullOrEmpty(updateContent))
                    {
                        m_UpdateContentContainer.gameObject.SetActive(false);
                    }
                    else
                    {
                        m_UpdateContentContainer.gameObject.SetActive(true);
                        m_UpdateCotent.text = updateContent;
                    }
                    break;
                default:
                    m_UpdateContentContainer.gameObject.SetActive(false);
                    break;
            }
        }
        private void Confirm()
@@ -160,11 +182,7 @@
                    VersionUtility.Instance.RequestVersionCheck();
                    break;
                case VersionUtility.Step.ApkExist:
                    var version = VersionUtility.Instance.versionInfo.GetLatestVersion();
                    var remoteURL = version.download_url;
                    var fileName = Path.GetFileName(remoteURL);
                    var apkLocalURL = StringUtility.Contact(VersionUtility.Instance.androidRoot, "/", fileName);
                    SDKUtility.Instance.InstallAPK(apkLocalURL);
                    SDKUtility.Instance.InstallAPK(VersionUtility.Instance.GetApkLocalUrl());
                    break;
                case VersionUtility.Step.DownLoadPrepared:
                    if (Application.platform == RuntimePlatform.Android)
@@ -173,7 +191,7 @@
                    }
                    else if (Application.platform == RuntimePlatform.IPhonePlayer)
                    {
                        Application.OpenURL(VersionUtility.Instance.versionInfo.GetLatestVersion().download_url);
                        Application.OpenURL(VersionUtility.Instance.GetApkRemoteUrl());
                        //打开应用商店链接
                    }
                    break;
System/ClientVersion/VersionUtility.cs
@@ -20,21 +20,18 @@
    public string androidRoot { get { return StringUtility.Contact(SDKUtility.Instance.DeviceRootPath, "/", VersionConfig.Get().bundleIdentifier); } }
    public float progress
    {
    public float progress {
        get { return RemoteFile.TotalDownloadedSize / ((float)versionInfo.GetLatestVersion().file_size * 1024); }
    }
    public string apkLocalURL = string.Empty;
    public VersionInfo versionInfo { get; private set; }
    public MaoErVersion maoerVersion;
    public bool completed { get { return step == Step.Completed; } }
    Step m_Step = Step.None;
    public Step step
    {
    public Step step {
        get { return m_Step; }
        private set
        {
        private set {
            if (m_Step != value)
            {
                m_Step = value;
@@ -70,17 +67,12 @@
        if (_ok)
        {
            versionInfo = JsonMapper.ToObject<VersionInfo>(_result);
            if (versionInfo.VersionCount > 0)
            if (NeedUpdate())
            {
                var version = versionInfo.GetLatestVersion();
                var remoteURL = version.download_url;
                switch (Application.platform)
                {
                    case RuntimePlatform.Android:
                        var fileName = Path.GetFileName(remoteURL);
                        apkLocalURL = StringUtility.Contact(androidRoot, "/", fileName);
                        if (File.Exists(apkLocalURL))
                        if (File.Exists(GetApkLocalUrl()))
                        {
                            step = Step.ApkExist;
                            WindowCenter.Instance.OpenFromLocal<VersionUpdateWin>();
@@ -118,18 +110,74 @@
        }
    }
    public bool NeedUpdate()
    {
        if (IsMaoErGame())
        {
            return versionInfo.downAsset == 0 && versionInfo.VersionCount > 0;
        }
        else
        {
            return versionInfo.downAsset == 1 && versionInfo.VersionCount > 0;
        }
    }
    public string GetApkLocalUrl()
    {
        if (IsMaoErGame())
        {
            return StringUtility.Contact(androidRoot, "/", "maoErGame.apk");
        }
        else
        {
            var remoteURL = GetApkRemoteUrl();
            var fileName = Path.GetFileName(remoteURL);
            return StringUtility.Contact(androidRoot, "/", fileName);
        }
    }
    public string GetApkRemoteUrl()
    {
        if (IsMaoErGame())
        {
            return maoerVersion.url;
        }
        else
        {
            var version = versionInfo.GetLatestVersion();
            return version.download_url;
        }
    }
    public string GetUpdateContent()
    {
        if (IsMaoErGame())
        {
            if (string.IsNullOrEmpty(maoerVersion.content))
            {
                return string.Empty;
            }
            else
            {
                return StringUtility.Contact(Language.GetFromLocal(30), "\r\n", maoerVersion.content);
            }
        }
        else
        {
            return string.Empty;
        }
    }
    public void StartDownLoad()
    {
        step = Step.DownLoad;
        var version = versionInfo.GetLatestVersion();
        var remoteURL = version.download_url;
        var fileName = Path.GetFileName(remoteURL);
        apkLocalURL = StringUtility.Contact(androidRoot, "/", fileName);
        var remoteURL = GetApkRemoteUrl();
        var apkLocalUrl = GetApkLocalUrl();
        RemoteFile.Prepare();
        var remoteFile = new RemoteFile();
        remoteFile.Init(remoteURL, apkLocalURL, null);
        remoteFile.Init(remoteURL, apkLocalUrl, null);
        remoteFile.Begin(OnDownLoadApkCompleted);
    }
@@ -155,7 +203,7 @@
                }
            }
            SDKUtility.Instance.InstallAPK(apkLocalURL);
            SDKUtility.Instance.InstallAPK(GetApkLocalUrl());
        }
        else
        {
@@ -168,10 +216,54 @@
        step = Step.Completed;
    }
    const string maoerGameAppId = "mrgame";
    static List<string> maoerGameAppId = new List<string> { "mrgame", "mrgameios" };
    public bool IsMaoErGame()
    {
        return VersionConfig.Get().appId == maoerGameAppId;
        return maoerGameAppId.Contains(VersionConfig.Get().appId);
    }
    public void RequestMaoErVersionCheck()
    {
        if (IsMaoErGame() && versionInfo.VersionCount > 0)
        {
            step = Step.None;
            var tables = new Dictionary<string, string>();
            tables["uid"] = ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult.account;
            var url = "https://api.maoergame.com/update/download/url";
            HttpRequest.Instance.RequestHttpPost(url, tables, HttpRequest.defaultHttpContentType, 1, OnMaoErVersionCheckResult);
        }
    }
    private void OnMaoErVersionCheckResult(bool ok, string result)
    {
        if (ok)
        {
            try
            {
                maoerVersion = JsonMapper.ToObject<MaoErVersion>(result);
                if (maoerVersion.code == 0)
                {
                    step = Step.DownLoadPrepared;
                    WindowCenter.Instance.OpenFromLocal<VersionUpdateWin>();
                }
                else
                {
                    step = Step.None;
                    Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck);
                }
            }
            catch (System.Exception ex)
            {
                step = Step.None;
                Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck);
            }
        }
        else
        {
            step = Step.None;
            Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck);
        }
    }
    public class VersionInfo
@@ -181,7 +273,7 @@
        public JsonData resource_url;
        public JsonData notice_flag;
        public Version[] versions;
        public int downAsset =1;
        public int downAsset = 1;
        public Version GetLatestVersion()
        {
@@ -240,6 +332,14 @@
        public string version_name;
    }
    public struct MaoErVersion
    {
        public string msg;
        public int code;
        public string content;
        public string url;
    }
    public enum Step
    {
        None,
System/Compose/New/ComposeWin.cs
@@ -48,7 +48,7 @@
        #region Built-in
        protected override void BindController()
        {
            WindowCenter.Instance.jumpWindowCloseEvent += CloseJumpWindow;
        }
        protected override void AddListeners()
@@ -67,7 +67,7 @@
        protected override void OnPreOpen()
        {
            ComposeModel.ResetModel();
            if(WindowJumpMgr.Instance.IsJumpState && WindowJumpMgr.Instance.jumpType == 1)
            if(WindowJumpMgr.Instance.IsJumpState)
            {
                if(ComposeModel.CurComposeModel != null)
                {
@@ -164,11 +164,19 @@
                WindowCenter.Instance.Open<MainInterfaceWin>();
               
            }
            if(WindowJumpMgr.Instance.jumpType != 1)
        }
        private void CloseJumpWindow(Window win)
        {
            if(win as ComposeWin)
            {
                ComposeModel.SetCurComposeModel(null);
                if (WindowJumpMgr.Instance.jumpPhase <= 1)
                {
                    ComposeModel.SetCurComposeModel(null);
                }
            }
        }
        #endregion
        private void OnClickRightBtn()
System/Compose/New/ComposeWinModel.cs
@@ -814,44 +814,49 @@
        int[] composeCondi = itemConfig.JumpComposeCondi;
        if (composeCondi.Length < 3) return false;
        ItemCompoundConfig itemCompound = GetThirdTypeModellist(composeCondi[0],composeCondi[1],composeCondi[2])[0];
        if(itemCompound.levelNeed <= PlayerDatas.Instance.baseData.LV)
        ItemCompoundConfig itemCompound = ItemCompoundConfig.GetItemCompoundByType(composeCondi[0], composeCondi[1], composeCondi[2]);
        if(itemCompound != null)
        {
            switch (itemCompound.firstType)
            if (itemCompound.levelNeed <= PlayerDatas.Instance.baseData.LV)
            {
                case 1:
                    jumpId = (int)JumpUIType.ComposeFunc1;
                    break;
                case 2:
                    jumpId = (int)JumpUIType.ComposeFunc2;
                    break;
                case 3:
                    jumpId = (int)JumpUIType.ComposeFunc3;
                    break;
                case 4:
                    jumpId = (int)JumpUIType.ComposeFunc4;
                    break;
                case 5:
                    jumpId = (int)JumpUIType.ComposeFunc5;
                    break;
            }
            this.secondType = itemCompound.secondType;
                switch (itemCompound.firstType)
                {
                    case 1:
                        jumpId = (int)JumpUIType.ComposeFunc1;
                        break;
                    case 2:
                        jumpId = (int)JumpUIType.ComposeFunc2;
                        break;
                    case 3:
                        jumpId = (int)JumpUIType.ComposeFunc3;
                        break;
                    case 4:
                        jumpId = (int)JumpUIType.ComposeFunc4;
                        break;
                    case 5:
                        jumpId = (int)JumpUIType.ComposeFunc5;
                        break;
                }
                this.secondType = itemCompound.secondType;
            if(itemCompound.firstType == 5 && itemCompound.secondType == 3)
            {
                this.thirdType = PlayerDatas.Instance.baseData.Job;
                if (itemCompound.firstType == 5 && itemCompound.secondType == 3)
                {
                    this.thirdType = PlayerDatas.Instance.baseData.Job;
                }
                else
                {
                    this.thirdType = itemCompound.thirdType;
                }
                return true;
            }
            else
            {
                this.thirdType = itemCompound.thirdType;
                SysNotifyMgr.Instance.ShowTip("TicketComposeUnlock", itemCompound.levelNeed, itemCompound.secondTypeName);
                return false;
            }
            return true;
        }
        else
        {
            SysNotifyMgr.Instance.ShowTip("TicketComposeUnlock", itemCompound.levelNeed, itemCompound.secondTypeName);
            return false;
        }
        return false;
    }
    public bool CheckIsComposeByType(int firstType,int secondType,int thirdType)
System/DailyQuest/DailyQuestBehaviour.cs
@@ -15,6 +15,7 @@
    {
        [SerializeField] Text m_Title;
        [SerializeField] RectTransform m_ContainerTimes;
        [SerializeField] Text m_TimesUnit;
        [SerializeField] TextEx m_Times;
        [SerializeField] Text m_PracticePoint;
        [SerializeField] Text m_UnLockCondition;
@@ -189,6 +190,17 @@
            else
            {
                m_ContainerTimes.gameObject.SetActive(true);
                switch ((DailyQuestType)this.data.id)
                {
                    case DailyQuestType.KillMonster:
                        m_TimesUnit.text = Language.Get("DailyQuestMonster");
                        break;
                    default:
                        m_TimesUnit.text = Language.Get("DailyQuestTimes");
                        break;
                }
                m_Times.text = StringUtility.Contact(completedTimes, "/", totalTimes);
                m_Times.colorType = completedTimes >= totalTimes ? TextColType.DarkGreen : TextColType.NavyBrown;
            }
@@ -318,6 +330,9 @@
            switch ((DailyQuestType)data.id)
            {
                case DailyQuestType.KillMonster:
                    m_PracticePoint.text = Language.Get("DailyQuestPerPoint2", config.OnceActivity, config.OnceActivityTime);
                    break;
                case DailyQuestType.BlastStove:
                    m_PracticePoint.text = Language.Get("DailyQuestLiandan", config.OnceActivity);
                    break;
System/Dogz/DogzPackWin.cs
@@ -24,6 +24,8 @@
        [SerializeField] ScrollerController m_PackController;
        [SerializeField] Button qualitySelectBtn;
        [SerializeField] Button starSelectBtn;
        [SerializeField] Transform qualityArrow;
        [SerializeField] Transform starArrow;
        [SerializeField] SortTable qualitySort;
        [SerializeField] SortTable starSort;
@@ -63,14 +65,19 @@
            playerPack.RefreshItemCountAct += RefreshDogzItemEvent;
            qualitySort.onSelectSortEvent += RefreshDogzSelectEvent;
            starSort.onSelectSortEvent += RefreshDogzSelectEvent;
            qualitySort.onSortCloseEvent += CloseQualitySort;
            starSort.onSortCloseEvent += CloseStarSort;
            dogzModel.SelectDogzItemQuality = 0;
            dogzModel.SelectDogzItemStart = 0;
            starSort.SetDefault();
            qualitySort.SetDefault();
            UpdateDogzEquip();
            UpdateDogzPack();
            starSort.gameObject.SetActive(false);
            qualitySort.gameObject.SetActive(false);
            starArrow.localRotation = Quaternion.Euler(0, 0, 180);
            qualityArrow.localRotation = Quaternion.Euler(0, 0, 180);
        }
        protected override void OnAfterOpen()
@@ -83,6 +90,8 @@
            playerPack.RefreshItemCountAct -= RefreshDogzItemEvent;
            qualitySort.onSelectSortEvent -= RefreshDogzSelectEvent;
            starSort.onSelectSortEvent -= RefreshDogzSelectEvent;
            qualitySort.onSortCloseEvent -= CloseQualitySort;
            starSort.onSortCloseEvent -= CloseStarSort;
        }
        protected override void OnAfterClose()
@@ -183,12 +192,31 @@
        private void ClickStarSelect()
        {
            starSort.gameObject.SetActive(!starSort.gameObject.activeInHierarchy);
            starArrow.localRotation = Quaternion.Euler(0, 0, 0);
            if (!starSort.gameObject.activeInHierarchy)
            {
                starSort.gameObject.SetActive(true);
            }
        }
        private void ClickQualitySelect()
        {
            qualitySort.gameObject.SetActive(!qualitySort.gameObject.activeInHierarchy);
            qualityArrow.localRotation = Quaternion.Euler(0, 0, 0);
            if (!qualitySort.gameObject.activeInHierarchy)
            {
                qualitySort.gameObject.SetActive(true);
            }
        }
        private void CloseQualitySort()
        {
            qualityArrow.localRotation = Quaternion.Euler(0, 0, 180);
        }
        private void CloseStarSort()
        {
            starArrow.localRotation = Quaternion.Euler(0, 0, 180);
        }
        [Serializable]
System/DogzDungeon/DogzDungeonModel.cs
@@ -286,17 +286,25 @@
                }
            }
            if (containBox)
            {
                dogzDungeonBox.UpdateBoxRefreshTime(boxRefreshSecond);
            }
            if (containElite)
            {
                dogzDungeonElite.UpdateEliteRefreshTime(eliteRefreshSecond);
            }
            if (WindowCenter.Instance.CheckOpen("DogzDungeonWin"))
            {
                if (containBox)
                {
                    dogzDungeonBox.UpdateBoxRefreshTime(boxRefreshSecond);
                    RequestBoxSurplusInfo();
                }
                if (containElite)
                {
                    dogzDungeonElite.UpdateEliteRefreshTime(eliteRefreshSecond);
                    RequestEliteSurplusInfo();
                }
            }
System/Dungeon/DungeonModel.cs
@@ -453,7 +453,7 @@
                            }
                            else
                            {
                                CancelGroupEnter(_dungeon.mapId);
                                CancelGroupEnter(_dungeon);
                            }
                        });
                    }
@@ -479,9 +479,9 @@
            }
        }
        private void CancelGroupEnter(int _mapId)
        private void CancelGroupEnter(Dungeon _dungeon)
        {
            switch (_mapId)
            switch (_dungeon.mapId)
            {
                case RealmModel.REALM_DUNGEON_ID:
                    if (!WindowCenter.Instance.CheckOpen<TeamFrameWin>())
@@ -491,6 +491,14 @@
                        WindowCenter.Instance.Open<TeamFrameWin>(false, teamModel.myTeam.inTeam ? 1 : 0);
                    }
                    break;
                default:
                    if (!WindowCenter.Instance.CheckOpen<TeamFrameWin>())
                    {
                        var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
                        teamModel.missionBuf = teamModel.currentMission = new TeamMission(_dungeon.mapId, _dungeon.lineId);
                        WindowCenter.Instance.Open<TeamFrameWin>(false, teamModel.myTeam.inTeam ? 1 : 0);
                    }
                    break;
            }
        }
System/FairyAu/FairyAuTaskWin.cs
@@ -82,7 +82,7 @@
            RewardsToOpen();
            ContentAssignment();
            int GetCylinderNumber = TaskAllocation.Instance.FairyAuNumber();//获取仙盟总环数
            if (coinTaskTip.IsFairy && GetCylinderNumber == 10)
            if (coinTaskTip.IsFairy && GetCylinderNumber == 10 && vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.AutoFairyMisstion) >= 1)
            {
                _ReceiveImageText.text = string.Format(Language.Get("TaskContinueCount_1"), Second);
            }
System/KnapSack/Logic/BoxGetItemWin.cs
@@ -193,15 +193,24 @@
                item.name = StringUtility.Contact("CommonItemCell", index);
                item.gameObject.SetActive(true);
                BoxGetItemInfo itemInfo = BoxModel.getItems[index];
                PackType type = PackType.rptDeleted;
                ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(itemInfo.ItemID);
                if(itemConfig != null)
                {
                    if(itemConfig.Type == 70 || (itemConfig.EquipPlace >= 101 && itemConfig.EquipPlace <= 105))
                    {
                        type = PackType.rptDogzItem;
                    }
                }
                CommonItemBaisc itemBasic = item.transform.Find("CommonItemCell").GetComponent<CommonItemBaisc>();
                ItemCellModel cellModel = new ItemCellModel(itemInfo.ItemID, false, (ulong)itemInfo.Count, itemInfo.IsBind,
                    "", PackType.rptDeleted, false, ConfigParse.Analysis(itemInfo.UserData));
                    "", type, false, ConfigParse.Analysis(itemInfo.UserData));
                itemBasic.Init(cellModel);
                itemBasic.cellBtn.RemoveAllListeners();
                itemBasic.cellBtn.AddListener(()=>
                {
                    ItemAttrData attrData = new ItemAttrData(itemInfo.ItemID,false, (ulong)itemInfo.Count,-1, itemInfo.IsBind,
                        false, PackType.rptDeleted,"", ConfigParse.Analysis(itemInfo.UserData));
                        false,type,"", ConfigParse.Analysis(itemInfo.UserData));
                    itemTipsModel.SetItemTipsModel(attrData);
                    
                });
System/KnapSack/Logic/PlayerPackModels.cs
@@ -882,7 +882,7 @@
        {
            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.EquipDecompose)) return;
            if(GetCanDevourModellist() != null && GetCanDevourModellist().Count > 0)
            if(GetCanDevourModellist() != null && GetCanDevourModellist().Count >= minDevourEquipNum)
            {
                redpointEquipDecom.state = RedPointState.Simple;
            }
@@ -1166,6 +1166,7 @@
        public List<int> devourPlacelist { get; private set; }
        public int MaxDevourEquipNum { get; private set; }
        public int minDevourEquipNum { get; private set;}
        public void SetDevourEquipPlace()
        {
            devourPlacelist = new List<int>();
@@ -1176,6 +1177,7 @@
                devourPlacelist.Add(placeArray[i]);
            }
            MaxDevourEquipNum = int.Parse(funcConfig.Numerical2);
            minDevourEquipNum = int.Parse(funcConfig.Numerical3);
        }
        List<ItemModel> devourModellist = new List<ItemModel>();
System/KnapSack/New/KnapSackWin.cs
@@ -42,7 +42,7 @@
        [SerializeField]
        private FunctionButton _depotTitle; //仓库
        [SerializeField]
        private FunctionButton _devourTitle; //仓库
        private FunctionButton _devourTitle; //装备分解
        [SerializeField]
        private FunctionButtonGroup _funcBtnGroup;
@@ -85,6 +85,13 @@
            base.OnActived();
            this.transform.SetAsLastSibling();
            _ornamentTitle.state = TitleBtnState.Locked;
            if(!WindowJumpMgr.Instance.IsJumpState && functionOrder == 0)
            {
                if(playerPack.redpointEquipDecom.state == RedPointState.Simple)
                {
                    functionOrder = _devourTitle.order;
                }
            }
            _funcBtnGroup.TriggerByOrder(functionOrder);
        }
System/Login/LoginModel.cs
@@ -15,8 +15,7 @@
        public SDKUtility.FP_LoginOk sdkLoginResult;
        public SDKUtility.FP_CheckIDAuthentication sdkIDCheckIDAuthentication;
        public string localSaveAccountName
        {
        public string localSaveAccountName {
            get { return LocalSave.GetString(USER_ACCOUNT); }
            set { LocalSave.SetString(USER_ACCOUNT, value); }
        }
@@ -25,22 +24,19 @@
        public event Action accountBindOkEvent;
        bool m_ReconnecBackGround = false;
        public bool reconnectBackGround
        {
        public bool reconnectBackGround {
            get { return m_ReconnecBackGround; }
            set { m_ReconnecBackGround = value; }
        }
        bool m_OnCreateRole = false;
        public bool onCreateRole
        {
        public bool onCreateRole {
            get { return m_OnCreateRole; }
            set { m_OnCreateRole = value; }
        }
        bool m_Busy = false;
        public bool busy
        {
        public bool busy {
            get { return m_Busy; }
            set { m_Busy = value; }
        }
@@ -90,11 +86,18 @@
            }
            SDKUtility.Instance.FreePlatformCheckIDAuthentication(sdkLoginResult.account);
            ServerListCenter.Instance.RequestServerListPlayer(sdkLoginResult.account);
            GameNotice.OpenGameNotice();
            SDKUtility.Instance.MakeKeyAndVisible();
            OperationLogCollect.Instance.RecordLauchEvent(5);
            if (VersionUtility.Instance.IsMaoErGame() && VersionUtility.Instance.NeedUpdate())
            {
                VersionUtility.Instance.RequestMaoErVersionCheck();
            }
            else
            {
                GameNotice.OpenGameNotice();
            }
        }
        private void OnSDKAccountLoginOutOk()
System/Login/LoginWin.cs
@@ -169,6 +169,14 @@
                return;
            }
            if (VersionUtility.Instance.IsMaoErGame())
            {
                if (VersionUtility.Instance.step != VersionUtility.Step.Completed)
                {
                    return;
                }
            }
            Login();
        }
System/MainInterfacePanel/FeatureNoticeModel.cs
@@ -242,9 +242,10 @@
        var IsOpenMaininterface = WindowCenter.Instance.CheckOpen<MainInterfaceWin>();
        var IsOpenOffLineOnHook = WindowCenter.Instance.CheckOpen<OffLineOnHookWin>();
        var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
        var IsLoading = StageManager.Instance.isLoading;
        if (NewBieCenter.Instance.inGuiding || treasureModel.newGotShowing || inDungeon || !IsOpenMaininterface
            || treasureModel.treasureStageUpShow || WindowCenter.Instance.ExitAnyFullScreenOrMaskWin() ||
            IsOpenOffLineOnHook)
            IsOpenOffLineOnHook || IsLoading)
        {
            yield break;
        }
System/MainInterfacePanel/FeatureNoticeWin.cs
@@ -19,7 +19,7 @@
        Pet = 6,//灵宠
        Horse = 8,//坐骑
        Wing = 97,//翅膀
        GossipFurnace = 87,//八卦炉
        GossipFurnace = 143,//八卦炉
    }
    public class FeatureNoticeWin : Window
System/MainInterfacePanel/HighSettingTip.cs
@@ -290,6 +290,15 @@
            {
                _model.currentCategory = TreasureCategory.Human;
            }
            else if (_model.GetTreasureUnlockShow(TreasureCategory.Demon) != 0)
            {
                _model.currentCategory = TreasureCategory.Demon;
            }
            else if (RedpointCenter.Instance.GetRedpointState(TreasureModel.CATEGORY_REDPOINTIDS[(int)TreasureCategory.Human - 1])
                == RedPointState.Simple)
            {
                _model.currentCategory = TreasureCategory.Human;
            }
            WindowCenter.Instance.Open<TreasureSelectWin>();
        }
System/MainInterfacePanel/TaskBoxBGMWin.cs
@@ -143,7 +143,7 @@
            if (_AllMissionDict.ContainsKey(_TaskId))
            {
                if (_AllMissionDict[_TaskId].Type == 7 || (_AllMissionDict[_TaskId].Type == 12 && vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.AutoFairyMisstion) >= 1))
                if (_AllMissionDict[_TaskId].Type == 7 || (_AllMissionDict[_TaskId].Type == 12 /*&& vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.AutoFairyMisstion) >= 1*/))
                {
                    taskmodel.RequestGetTaskAward("OK");
                    WindowCenter.Instance.CloseImmediately<TaskBoxBGMWin>();
System/MainInterfacePanel/TaskListTip.cs
@@ -155,19 +155,19 @@
            }
        }
        private void CardLevelChangeEvent(int taskID)
        private void CardLevelChangeEvent(int taskID)//卡级状态改变
        {
            if (taskmodel.allMissionDict.ContainsKey(taskID) && taskmodel.allMissionDict[taskID].Type == 3)
            {
                TaskScheduling();
                TheTaskToGenerate();
                ChangeSort();
                TaskJump(taskID);
            }
        }
        private void MainCardLevelChange(int _id)
        private void MainCardLevelChange(int _id)//主线任务卡级状态改变
        {
            TaskScheduling();
            TheTaskToGenerate();
            TaskScheduling();
            ChangeSort();
            TaskJump(_id);
        }
@@ -326,6 +326,20 @@
                }
            }
        }
        private void ChangeSort()//关于任务变更排序
        {
            for (int i = 0; i < Content.childCount; i++)
            {
                GameObject obj = Content.GetChild(i).gameObject;
                TaskType taskType = obj.GetComponent<TaskType>();
                if (taskType.TaskID != 0 && _list.Contains(taskType.TaskID))
                {
                    int Inedx = _list.IndexOf(taskType.TaskID);
                    obj.transform.SetSiblingIndex(Inedx);
                }
            }
        }
        void TaskInformation(int _Taskid, Dictionary<int, Dictionary<string, string>> _Dic)//任务字典信息
        {
@@ -376,6 +390,19 @@
        {
            MissionDetailDates xPack = taskmodel.allMissionDict[x];
            MissionDetailDates yPack = taskmodel.allMissionDict[y];
            bool IsMainTaskx = xPack.Type == 0;
            bool IsMainTasky = yPack.Type == 0;
            if (IsMainTaskx.CompareTo(IsMainTasky) != 0)//优先主线
            {
                return -IsMainTaskx.CompareTo(IsMainTasky);
            }
            bool IsStateTaskx = xPack.MissionState == 2;
            bool IsStateTasky = yPack.MissionState == 2;
            if (IsStateTaskx.CompareTo(IsStateTasky) != 0)//优先可领取
            {
                return -IsStateTaskx.CompareTo(IsStateTasky);
            }
            var _index0 = ListSort.IndexOf(xPack.Type);
            var _index1 = ListSort.IndexOf(yPack.Type);
            if (_index0.CompareTo(_index1) != 0)
@@ -393,6 +420,18 @@
        {
            MissionDetailDates xPack = taskmodel.allMissionDict[x];
            MissionDetailDates yPack = taskmodel.allMissionDict[y];
            bool IsMainTaskx = xPack.Type == 0;
            bool IsMainTasky = yPack.Type == 0;
            if (IsMainTaskx.CompareTo(IsMainTasky) != 0)//优先主线
            {
                return -IsMainTaskx.CompareTo(IsMainTasky);
            }
            bool IsStateTaskx = xPack.MissionState == 2;
            bool IsStateTasky = yPack.MissionState == 2;
            if (IsStateTaskx.CompareTo(IsStateTasky) != 0)//优先可领取
            {
                return -IsStateTaskx.CompareTo(IsStateTasky);
            }
            var _index0 = ListSort1.IndexOf(xPack.Type);
            var _index1 = ListSort1.IndexOf(yPack.Type);
            if (_index0.CompareTo(_index1) != 0)
System/Market/PutawayWin.cs
@@ -514,6 +514,7 @@
            if (PutawayData.Instance.itemModel == null) return;
            if (PlayerDatas.Instance.market.putawayCnt >= model.totalPutawayCnt)
            {
                SysNotifyMgr.Instance.ShowTip("MarketNoPutaway4", model.totalPutawayCnt);
                return;
            }
            if (PutawayData.Instance.priceCnt == 0)
System/Mount/PlayerMountDatas.cs
@@ -51,7 +51,7 @@
    public int MountStoneItemId = 0;
    public bool IsOk = false;
    public bool IsRedPointSingleFeed = true;
    public  List<int> ListEffectSkill = new List<int>();
    public List<int> ListEffectSkill = new List<int>();
    PlayerPackModel _playerPack;
    PlayerPackModel playerPack
    {
@@ -61,9 +61,10 @@
    public bool Wait = true;//等待回包(使用坐骑丹)
    public static Action<int, bool> MultipleEvent;
    public static event Action PlayerLoginOKData;
    private Dictionary<int, int> DicDefaultMount = new Dictionary<int, int>();
    public override void Init()
    {
        ToAddSorting();
    {
        ToAddSorting();
        playerPack.RefreshItemCountAct += OnItemRefreshEvent;
        MountWin.RedPointMountDan += RedPointMountDan;
        MountSkillAndItem();
@@ -75,6 +76,8 @@
        {
            ListEffectSkill.Add(listeffect[i]);
        }
        string MountRedDotstr = Config.Instance.Get<FuncConfigConfig>("MountPetRedDot").Numerical1;
        DicDefaultMount = ConfigParse.GetDic<int, int>(MountRedDotstr);
    }
    public override void UnInit()
@@ -106,7 +109,7 @@
        foreach (var index in singPack.GetPackModelIndexDict().Keys)
        {
            OnItemRefreshEvent(singPack.packType, index, singPack.GetPackModelIndexDict()[index].itemId);
        }
        }
        if (PlayerLoginOKData != null)
        {
            PlayerLoginOKData();
@@ -278,6 +281,7 @@
        int GetMountID = 0;
        int GetMountLv = 0;
        for (int i = 0; i < SortMount.Count; i++)
        {
            int horseID = SortMount[i].HorseID;
@@ -300,6 +304,16 @@
        ItemConfig _tagchine = Config.Instance.Get<ItemConfig>(int.Parse(_tagfun.Numerical1));
        HorseConfig horsecon = Config.Instance.Get<HorseConfig>(GetMountID);
        int number = playerPack.GetItemCountByID(PackType.rptItem, _tagchine.ID);
        foreach (var key in _DicHorse.Keys)//因为有成就任务限制所有 第一只坐骑红点逻辑特殊写
        {
            if (DicDefaultMount.ContainsKey(key) && DicDefaultMount[key] > _DicHorse[key].Lv
                && number > 0 && ASingleFeedRedPoint.ContainsKey(key))
            {
                ASingleFeedRedPoint[key].state = RedPointState.Simple;
                return;
            }
        }
        if (ASingleFeedRedPoint.ContainsKey(GetMountID) && number > 0 && GetMountLv < horsecon.MaxLV)
        {
            if (PlayerDatas.Instance.baseData.LV >= 1500)
@@ -315,7 +329,6 @@
                ASingleFeedRedPoint[GetMountID].state = RedPointState.Simple;
                return;
            }
        }
    }
@@ -349,7 +362,7 @@
        int SkillLv = 0;
        foreach (var key in GetMountSkillAndItem.Keys)
        {
            if (GetMountSkillAndItem[key].HorseID == MountId)
            if (GetMountSkillAndItem[key].HorseID == MountId)
            {
                if (GetMountSkillAndItem[key].HorseLV > SkillLv)
                {
@@ -584,7 +597,7 @@
                Type = 2;
                return Type;
            }
        }
        }
        if (MainRedDot.Instance.redPointMountFunc.state == RedPointState.Simple)
        {
            Type = 1;
@@ -603,7 +616,7 @@
        int maxRank = horseConfig.MaxLV;
        HorseUpConfig cost = HorseUpConfig.GetHorseIDAndLV(mountCode, maxRank);
        if(cost != null)
        if (cost != null)
        {
            int[] attrIds = ConfigParse.GetMultipleStr<int>(cost.AttrType);
            int[] attrValues = ConfigParse.GetMultipleStr<int>(cost.AttrValue);
System/OpenServerActivity/ImpactRankWin.cs
@@ -114,6 +114,7 @@
        private void OnServerOpenDayRefresh()
        {
            UpdateRanks();
            m_RankAwardCtrl.m_Scorller.RefreshActiveCellViews();
        }
        private void OnRefreshRankList(int type)
System/Pet/PlayerPetDatas.cs
@@ -66,6 +66,7 @@
    public int petUpgradeToolId { get; set; }
    public event Action PlayerLoginOkData;
    private Dictionary<int, int> DicDefaultPet = new Dictionary<int, int>();
    public override void Init()
    {
@@ -95,6 +96,8 @@
        {
            ListEffectSkill.Add(listeffect[i]);
        }
        string PetRedDotstr = Config.Instance.Get<FuncConfigConfig>("MountPetRedDot").Numerical2;
        DicDefaultPet = ConfigParse.GetDic<int, int>(PetRedDotstr);
    }
    public override void UnInit()
@@ -104,7 +107,7 @@
        PetAttributeWin.IsRedPointCultivate -= IsRedPointCultivate;
    }
    public void OnBeforePlayerDataInitialize()
    {
@@ -141,7 +144,7 @@
        if (!Wait)
        {
            TimeSpan timeS = DateTime.Now - dateTimeA;
            if (timeS.Seconds>= 2f)
            if (timeS.Seconds >= 2f)
            {
                Wait = true;
            }
@@ -172,7 +175,7 @@
        }
    }
    public void SendPetTrainQuest(int petIndex,int number)
    public void SendPetTrainQuest(int petIndex, int number)
    {
        CA704_tagCMPetClassUP _tagCA704 = new CA704_tagCMPetClassUP();
        _tagCA704.PetItemIndex = (byte)petIndex;
@@ -353,10 +356,20 @@
            }
        }
        int itemCount = playerPack.GetItemCountByID(PackType.rptItem, 4151);
        foreach (var key in _DicPetBack.Keys)//因为有成就任务限制所有 第一只坐骑红点逻辑特殊写
        {
            if (DicDefaultPet.ContainsKey(key) && DicDefaultPet[key] > _DicPetBack[key].PetClass
                && itemCount > 0 && CultivateRedPoint.ContainsKey(key))
            {
                CultivateRedPoint[key].state = RedPointState.Simple;
                CanEssence = true;
                return;
            }
        }
        PetInfoConfig petinfo = Config.Instance.Get<PetInfoConfig>(GetPetId);
        if (PlayerDatas.Instance.baseData.LV >= 1500)
        {
            if (CultivateRedPoint.ContainsKey(GetPetId) && itemCount > 0 && RedPointMaxLv && petinfo.MaxRank> petLv)
            if (CultivateRedPoint.ContainsKey(GetPetId) && itemCount > 0 && RedPointMaxLv && petinfo.MaxRank > petLv)
            {
                CultivateRedPoint[GetPetId].state = RedPointState.Simple;
                CanEssence = true;
@@ -369,7 +382,7 @@
                CultivateRedPoint[GetPetId].state = RedPointState.Simple;
                CanEssence = true;
            }
        }
        }
    }
    public int GetMinPetLv()
@@ -404,8 +417,8 @@
        PetInfoConfig petInfo = Config.Instance.Get<PetInfoConfig>(PetID);
        if (petInfo != null)
        {
            curPetUnlocks= ConfigParse.GetMultipleStr<int>(petInfo.SkillUnLock);
            maxskillLV = curPetUnlocks[(curPetUnlocks.Length)-1];
            curPetUnlocks = ConfigParse.GetMultipleStr<int>(petInfo.SkillUnLock);
            maxskillLV = curPetUnlocks[(curPetUnlocks.Length) - 1];
        }
        return maxskillLV;
    }
@@ -519,7 +532,7 @@
                    {
                        Event_H0704Add();
                    }
                }
                else
                {
@@ -658,7 +671,7 @@
        }
    }
    public int  IsPetPanelRedPointState()//用于判断当前灵宠页签是否有红点亮起
    public int IsPetPanelRedPointState()//用于判断当前灵宠页签是否有红点亮起
    {
        int Type = 0;
        foreach (var value in DeblockingRedPoint.Values)
@@ -668,7 +681,7 @@
                Type = 2;
                return Type;
            }
        }
        }
        if (MainRedDot.Instance.redPonintPetFunc2.state == RedPointState.Simple)
        {
            Type = 1;
@@ -680,20 +693,20 @@
    #region 预览宠物碎片属性
    Dictionary<int, int> petAttrDict = new Dictionary<int, int>();
    public Dictionary<int,int> GetPetAttrAddDict(int petCode)
    public Dictionary<int, int> GetPetAttrAddDict(int petCode)
    {
        PetInfoConfig infoConfig = Config.Instance.Get<PetInfoConfig>(petCode);
        petAttrDict.Clear();
        if (infoConfig == null) return petAttrDict;
        int maxRank = infoConfig.MaxRank;
        PetClassCostConfig cost = PetClassCostConfig.GetPetIdAndRank(petCode,maxRank);
        PetClassCostConfig cost = PetClassCostConfig.GetPetIdAndRank(petCode, maxRank);
        int allAtkAdd = 0;
        if(cost != null)
        if (cost != null)
        {
            allAtkAdd = cost.AtkAdd;
        }
        petAttrDict.Add(7,allAtkAdd);
        petAttrDict.Add(7, allAtkAdd);
        return petAttrDict;
    }
    #endregion
System/PlayerDead/PlayerDeadModel.cs
@@ -26,7 +26,7 @@
        IsCanReborn = false;
        isOpenPrompting = true;
        this.deadCD = 0;
        localBossState = 0;
        localBossState = false;
        playerIsDie = false;
    }
@@ -81,13 +81,14 @@
    private DungeonOpenTimeConfig _dungeonOpenTimeModel;
    public bool IsCanReborn { get; private set; }
    public int localBossState { get; private set;}
    public bool localBossState { get; private set;}
    public string killerName { get; private set; }
    public bool isKillByPlayer { get; private set; }
    public int npcRealmLv { get; private set; }
    private void RefreshPlayerDieInfo(string key, ArrayList infolist)
    {
        npcRealmLv = 0;
        localBossState = false;
        switch (key)
        {
            case "PK_lhs_318691":
@@ -100,11 +101,16 @@
            case "GeRen_chenxin_279029":
                if(infolist.Count > 0)
                {
                    WorldBossConfig bossConfig = Config.Instance.Get<WorldBossConfig>(int.Parse(infolist[0].ToString()));
                    NPCConfig nPCConfig = Config.Instance.Get<NPCConfig>(int.Parse(infolist[0].ToString()));
                    if(nPCConfig != null)
                    {
                        killerName = nPCConfig.charName;
                        npcRealmLv = nPCConfig.Realm;
                    }
                    if(bossConfig != null)
                    {
                        localBossState = true;
                    }
                    isKillByPlayer = false;
                }
@@ -141,8 +147,6 @@
        {
            return;
        }
        localBossState = PlayerDatas.Instance.extersion.bossState;
        playerIsDie = true;
        _tagMapModel = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
        if (_tagMapModel.MapFBType == 0)
@@ -151,7 +155,7 @@
            rebornTiredNum = RebornConditions[0];
            rebornPrice = RebornConditions[2];
            //isBossKill = StatusManager.Instance.IsExist((int)playerId,20022);
            if (!isKillByPlayer && localBossState == 1)
            if (!isKillByPlayer && localBossState)
            {
                autoRebornTime = RebornConditions[3];
            }
@@ -253,7 +257,7 @@
        if (PlayerDatas.Instance.baseData.PlayerID != data.PlayerID)
            return;
        localBossState = 0;
        localBossState = false;
        this.deadCD = 0;
        isKillByPlayer = false;
        playerIsDie = false;
System/PlayerDead/RebornWin.cs
@@ -79,7 +79,7 @@
        {
            questTimes = 0;
            _rebornPriceText.text = 1.ToString();
            if(DeadModel.isKillByPlayer || DeadModel.localBossState != 1)
            if(DeadModel.isKillByPlayer || !DeadModel.localBossState)
            {
                OnShowBtnlist();
            }
System/Realm/RealmUpWin.cs
@@ -41,10 +41,14 @@
        [SerializeField] UIEffect m_RealmDungeonSfx;
        [SerializeField] RectTransform m_ContainerGroup;
        [SerializeField] Button m_Group;
        [SerializeField] Button m_AutoGroup;
        [SerializeField] Button m_GroupDungeon;
        [SerializeField] Button m_SingleDungeon;
        [SerializeField] Button m_FuncButton;
        [SerializeField] Text m_FuncButtonTxt;
        [SerializeField] Text m_RealmStageTip;
        [SerializeField] RedpointBehaviour m_SingleRedpoint;
        [SerializeField] RectTransform m_ContainerFightPower;
        [SerializeField] Text m_FightPower;
@@ -77,6 +81,9 @@
            m_SingleDungeon.onClick.AddListener(SingleDungeon);
            m_FuncButton.onClick.AddListener(OnFunctionClick);
            m_RealmPreview.onClick.AddListener(OnRealmPreview);
            m_Group.onClick.AddListener(OpenGroup);
            m_AutoGroup.onClick.AddListener(AutoGroup);
            m_GroupDungeon.onClick.AddListener(GroupDungeon);
        }
        protected override void OnPreOpen()
@@ -86,6 +93,7 @@
            cacheRealmPoint = PlayerDatas.Instance.extersion.realmPoint;
            m_RawBoss.gameObject.SetActive(false);
            m_RawPlayer.gameObject.SetActive(false);
            m_ContainerGroup.gameObject.SetActive(false);
            overdueTime = DateTime.Now;
            Display();
        }
@@ -326,56 +334,71 @@
        {
            var _realmPoint = PlayerDatas.Instance.extersion.realmPoint;
            var config = Config.Instance.Get<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel);
            m_FuncButton.gameObject.SetActive(!realmModel.IsRealmHighest);
            m_SingleDungeon.gameObject.SetActive(false);
            if (_realmPoint >= config.NeedPoint)
            {
                m_FuncButtonTxt.text = Language.Get(config.IsBigRealm == 1 ? "RealmWin_Bewrite_13" : "RealmWin_Bewrite_12");
                m_SingleDungeon.gameObject.SetActive(config.IsBigRealm == 1 && !realmModel.IsRealmHighest);
            }
            else
            {
                m_FuncButtonTxt.text = Language.Get("RealmWin_Bewrite_1");
            }
            bool satisfyChallenge = _realmPoint >= config.NeedPoint;
            m_Group.gameObject.SetActive(!realmModel.IsRealmHighest && config.IsBigRealm == 1 && satisfyChallenge);
            m_SingleDungeon.gameObject.SetActive(!realmModel.IsRealmHighest && satisfyChallenge);
            m_FuncButton.gameObject.SetActive(!realmModel.IsRealmHighest && !satisfyChallenge);
            m_SingleRedpoint.gameObject.SetActive(!m_Group.gameObject.activeSelf);
        }
        private void OnFunctionClick()
        {
            var _realmPoint = PlayerDatas.Instance.extersion.realmPoint;
            var config = Config.Instance.Get<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel);
            if (_realmPoint >= config.NeedPoint)
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.DailyQuestFunc1);
        }
        private void GroupDungeon()
        {
            if (DateTime.Now < overdueTime)
            {
                if (DateTime.Now < overdueTime)
                {
                    return;
                }
                PlayerDatas.Instance.realm.realmHelpList.Clear();
                if (config.IsBigRealm == 1)
                {
                    var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
                    if (teamModel.myTeam.inTeam && teamModel.myTeam.iamCaptainer)
                    {
                        ModelCenter.Instance.GetModel<DungeonModel>().GroupChallenge(RealmModel.REALM_DUNGEON_ID, 1);
                    }
                    else
                    {
                        teamModel.missionBuf = teamModel.currentMission = new TeamMission(31110, 1);
                        WindowCenter.Instance.Open<TeamFrameWin>(false, teamModel.myTeam.inTeam ? 1 : 0);
                    }
                }
                else
                {
                    ModelCenter.Instance.GetModel<DungeonModel>().SingleChallenge(RealmModel.REALM_DUNGEON_ID);
                }
                return;
            }
            if (PlayerDatas.Instance.baseData.MapID == RealmModel.REALM_DUNGEON_ID)
            {
                return;
            }
            var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
            if (teamModel.myTeam.inTeam && teamModel.myTeam.iamCaptainer)
            {
                ModelCenter.Instance.GetModel<DungeonModel>().GroupChallenge(RealmModel.REALM_DUNGEON_ID, 1);
            }
            else
            {
                WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.DailyQuestFunc1);
                teamModel.missionBuf = teamModel.currentMission = new TeamMission(31110, 1);
                WindowCenter.Instance.Open<TeamFrameWin>(false, teamModel.myTeam.inTeam ? 1 : 0);
            }
        }
        private void AutoGroup()
        {
            if (DateTime.Now < overdueTime)
            {
                return;
            }
            var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
            teamModel.RequestAutoMatchTeam(new TeamMission(RealmModel.REALM_DUNGEON_ID, 1));
            WindowCenter.Instance.Open<TeamFrameWin>(false, 1);
        }
        private void OpenGroup()
        {
            var opened = m_ContainerGroup.gameObject.activeSelf;
            if (!opened)
            {
                m_ContainerGroup.gameObject.SetActive(true);
            }
        }
        private void SingleDungeon()
        {
            if (DateTime.Now < overdueTime)
            {
                return;
            }
            if (PlayerDatas.Instance.baseData.MapID == RealmModel.REALM_DUNGEON_ID)
            {
                return;
            }
            PlayerDatas.Instance.realm.realmHelpList.Clear();
            var _realmPoint = PlayerDatas.Instance.extersion.realmPoint;
            var config = Config.Instance.Get<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel);
            if (_realmPoint >= config.NeedPoint)
System/Skill/SkillModel.cs
@@ -350,7 +350,7 @@
                    taskHoleCondition = result;
                }
            }
            UpdateTaskHoleRedpoint();
            //UpdateTaskHoleRedpoint();
        }
        RolePromoteModel m_PromoteModel;
@@ -528,7 +528,7 @@
            }
            playerLoginOk = true;
            UpdateRedpoint();
            UpdateTaskHoleRedpoint();
            //UpdateTaskHoleRedpoint();
        }
        public void CheckEquipPassSkill(PlayerSkillData _skill)
@@ -648,29 +648,29 @@
            UpdateRedpoint();
        }
        public Redpoint taskHoleRedpoint = new Redpoint(10302, 1030299);
        void UpdateTaskHoleRedpoint()
        {
            taskHoleRedpoint.state = RedPointState.None;
            if (DayRemind.Instance.GetDayRemind(DayRemind.TASK_SKILL_HOLE))
            {
                return;
            }
            foreach (var hole in taskHoleDict.Keys)
            {
                var taskId = taskHoleDict[hole];
                if (IsImmediatelyUnlock(hole))
                {
                    var config = Config.Instance.Get<PyTaskConfig>(taskId);
                    if (PlayerDatas.Instance.baseData.LV >= config.lv
                        && !IsTaskHoleUnlock(hole))
                    {
                        taskHoleRedpoint.state = RedPointState.Simple;
                    }
                    return;
                }
            }
        }
        //public Redpoint taskHoleRedpoint = new Redpoint(10302, 1030299);
        //void UpdateTaskHoleRedpoint()
        //{
        //    taskHoleRedpoint.state = RedPointState.None;
        //    if (DayRemind.Instance.GetDayRemind(DayRemind.TASK_SKILL_HOLE))
        //    {
        //        return;
        //    }
        //    foreach (var hole in taskHoleDict.Keys)
        //    {
        //        var taskId = taskHoleDict[hole];
        //        if (IsImmediatelyUnlock(hole))
        //        {
        //            var config = Config.Instance.Get<PyTaskConfig>(taskId);
        //            if (PlayerDatas.Instance.baseData.LV >= config.lv
        //                && !IsTaskHoleUnlock(hole))
        //            {
        //                taskHoleRedpoint.state = RedPointState.Simple;
        //            }
        //            return;
        //        }
        //    }
        //}
        public bool IsImmediatelyUnlock(int hole)
        {
@@ -685,7 +685,7 @@
        public void SetTaskHoleRemind()
        {
            DayRemind.Instance.SetDayRemind(DayRemind.TASK_SKILL_HOLE, true);
            UpdateTaskHoleRedpoint();
            //UpdateTaskHoleRedpoint();
        }
        #endregion
@@ -694,7 +694,7 @@
            if (_id == 109)
            {
                UpdateRedpoint();
                UpdateTaskHoleRedpoint();
                //UpdateTaskHoleRedpoint();
            }
        }
    }
System/Skill/SkillPassWin.cs
@@ -152,22 +152,22 @@
                    OnClickEquipHole(hole, false);
                }
            }
            else if (model.taskHoleRedpoint.state == RedPointState.Simple)
            {
                model.SetTaskHoleRemind();
                for (int i = 0; i < equipPassSkills.Count; i++)
                {
                    PassSkillLimit limit;
                    if (model.TryGetPassSkillLimit(i, out limit))
                    {
                        if (limit.OpenSkillSlots > 0 && model.IsImmediatelyUnlock(i))
                        {
                            OnClickEquipHole(i, false);
                            return;
                        }
                    }
                }
            }
            //else if (model.taskHoleRedpoint.state == RedPointState.Simple)
            //{
            //    model.SetTaskHoleRemind();
            //    for (int i = 0; i < equipPassSkills.Count; i++)
            //    {
            //        PassSkillLimit limit;
            //        if (model.TryGetPassSkillLimit(i, out limit))
            //        {
            //            if (limit.OpenSkillSlots > 0 && model.IsImmediatelyUnlock(i))
            //            {
            //                OnClickEquipHole(i, false);
            //                return;
            //            }
            //        }
            //    }
            //}
        }
        protected override void OnAfterOpen()
System/Store/PetAndMountPushWin.cs
@@ -83,7 +83,8 @@
        private void ClickGoTo()
        {
            CloseImmediately();
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.StoreFunc3);
            storeModel.SetJumpModel(StoreFunc.BindStore, storeModel.currentPushId);
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.StoreFunc4);
        }
        private void ClickCloseBtn()
        {
System/Store/StoreModel.cs
@@ -58,6 +58,7 @@
    {
        IsMustBuyDay = false;
        isLogin = true;
        ClearJumpModel();
        StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
        FuncOpen.Instance.OnFuncStateChangeEvent -= FuncStateChange;
        WindowCenter.Instance.windowAfterCloseEvent -= windowAfterOpen;
@@ -1019,7 +1020,7 @@
        List<StoreConfig> storelist = StoreConfig.GetAllShoplist();
        for(int i = 0; i < storelist.Count; i++)
        {
            if (storelist[i].ShopType != (int)StoreFunc.GrowStrongerStore) continue;
            if (storelist[i].ShopType != (int)StoreFunc.BindStore) continue;
            ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(storelist[i].ItemID);
            string key = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID,"ShopId",storelist[i].ID);
@@ -1242,6 +1243,24 @@
    }
    #endregion
    #region 处理跳转数据
    public int funcOrder { get; private set; }
    public int jumpShopId { get; private set; }
    public void SetJumpModel(StoreFunc storeFunc,int shopId)
    {
        if (shopId == 0) return;
        funcOrder = (int)storeFunc - 1;
        jumpShopId = shopId;
    }
    public void ClearJumpModel()
    {
        funcOrder = -1;
        jumpShopId = 0;
    }
    #endregion
}
public enum StoreFunc
System/Store/StoreWin.cs
@@ -130,6 +130,11 @@
                    functionOrder = _integralStoreTitle.order;
                }
            }
            if(!WindowJumpMgr.Instance.IsJumpState && m_storeModel.funcOrder != -1)
            {
                functionOrder = m_storeModel.funcOrder;
            }
            _funcBtnGroup.TriggerByOrder(functionOrder);
            GlobalTimeEvent.Instance.secondEvent += RefreshResetTime;
        }
@@ -182,8 +187,25 @@
                    AchievementGoto.guideAchievementId = 0;
                }
            }
            else
            {
                if(m_storeModel.jumpShopId != 0)
                {
                    _tagStoreModellist = StoreConfig.GetTypeStoreModel((int)m_storeModel.storeFuncType);
                    for (int i = 0; i < _tagStoreModellist.Count; i++)
                    {
                        if (_tagStoreModellist[i].ID == m_storeModel.jumpShopId)
                        {
                            int index = i / 2 ;
                            _shopCtrl.JumpIndex(index > 2 ? index - 1 : index);
                            _shopCtrl.m_Scorller.RefreshActiveCellViews();
                            break;
                        }
                    }
                    m_storeModel.ClearJumpModel();
                }
            }
        }
        private void RefreshResetTime()
        {
System/Strengthening/WingsRedDot.cs
@@ -29,13 +29,13 @@
        public override void Init()
        {
        }
        public void OnPlayerLoginOk()
        {
            playerPack.ItemCntAddAct += ItemCntAddAct;
            playerPack.RefreshItemCountAct += OnItemRefreshEvent;
            playerPack.ItemCntAddAct += ItemCntAddAct;//物品数量增加
            playerPack.ItemCntReduceAct += ItemCntReduceAct;//物品数量减少
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange;
            ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
            if (IsOnePutOn)
@@ -46,29 +46,23 @@
            {
                IsOnePutOn = false;
            }
        }
        public void OnBeforePlayerDataInitialize()
        {
            playerPack.ItemCntAddAct -= ItemCntAddAct;//物品数量刷新
            playerPack.RefreshItemCountAct -= OnItemRefreshEvent;//背包刷新
            playerPack.ItemCntAddAct -= ItemCntAddAct;//物品数量增加
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange;
            playerPack.ItemCntReduceAct -= ItemCntReduceAct;//物品数量减少
        }
        private void OnItemRefreshEvent(PackType type, int index, int id)
        {
            if (type == PackType.rptItem && ItemConfig.tag_Wings.ContainsKey(id)&& IsOnePutOn)
            {
                WingsDot();
                IsOnePutOn = false;
            }
        }
        public override void UnInit()
        {
        }
        private void OnFuncStateChange(int obj)
        {
@@ -168,25 +162,71 @@
                Marking = WingNumber;
            }
        }
        private void ItemCntAddAct(PackType arg1, int WingsItemIndex, int ItemCount)
        private void ItemCntAddAct(PackType arg1, int ItemIndex, int ItemID)//物品数量增加
        {
            if (arg1 == PackType.rptItem)
            if (arg1 == PackType.rptItem)//物品背包物品增加
            {
                if (IsBoolOpenWingeWin)
                ItemBagAdd(ItemIndex, ItemID);
            }
            if (arg1 == PackType.rptEquip)//装备背包物品增加
            {
                ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
                if (IsOnePutOn)
                {
                    return;
                    WingsDot();
                }
                if (_dicWings.ContainsKey(WingsItemIndex))
                if (itemModel != null)
                {
                    if (ItemCount > _dicWings[WingsItemIndex].WingsCount)
                    IsOnePutOn = false;
                }
            }
        }
        private void ItemBagAdd(int ItemIndex, int ItemID)//物品背包数量添加
        {
            ItemModel ItemModel = playerPack.GetItemModelByIndex(PackType.rptItem, ItemIndex);
            int ItemCount = ItemModel.preItemCount;
            var WingItem = Config.Instance.Get<WingRefineExpConfig>(ItemModel.itemId);
            if (IsBoolOpenWingeWin || WingItem == null)
            {
                return;
            }
            if (_dicWings.ContainsKey(ItemIndex))
            {
                if (ItemCount > _dicWings[ItemIndex].WingsCount)
                {
                    _dicWings[ItemIndex].WingsCount = ItemCount;
                    redPointStre.state = RedPointState.Simple;
                }
                else
                {
                    _dicWings[ItemIndex].WingsCount = ItemCount;
                }
            }
        }
        private void ItemCntReduceAct(PackType arg1, int Index, int ItemID)
        {
            if (arg1 == PackType.rptItem)//物品背包物品减少
            {
                var WingItem = Config.Instance.Get<WingRefineExpConfig>(ItemID);
                if (WingItem != null && _dicWings.ContainsKey(Index))
                {
                    _dicWings.Remove(Index);
                    if (_dicWings.Count <= 0 && redPointStre.state == RedPointState.Simple)
                    {
                        _dicWings[WingsItemIndex].WingsCount = ItemCount;
                        redPointStre.state = RedPointState.Simple;
                        redPointStre.state = RedPointState.None;
                        return;
                    }
                    else
                    {
                        _dicWings[WingsItemIndex].WingsCount = ItemCount;
                    }
                }
            }
            if (arg1 == PackType.rptEquip)//装备脱下
            {
                ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
                if (itemModel == null && redPointStre.state == RedPointState.Simple)
                {
                    redPointStre.state = RedPointState.None;
                    return;
                }
            }
        }
System/Treasure/TreasureModel.cs
@@ -19,7 +19,7 @@
        public const int TREASURE_GUIDE_ID = 102;
        const int TREASURE_REDPOINTID = 7000;
        readonly static int[] CATEGORY_REDPOINTIDS = { 7001, 7002, 7003, 7004, 7005 };
        public readonly static int[] CATEGORY_REDPOINTIDS = { 7001, 7002, 7003, 7004, 7005 };
        const int TREASURE_REDPOINTBASE = 7100;
        public static int redpointIndex = 1;
System/Treasure/TreasurePotentialPanel.cs
@@ -595,7 +595,7 @@
        {
            var levelUpConfig = GetPotentialLevelUpConfig();
            m_SuccessRatio.text = StringUtility.Contact((levelUpConfig.rate * 0.01f).ToString("f0"), "%");
            m_RatioUp.gameObject.SetActive(model.selectedPotentialBook != 0 && levelUpConfig.rate > 0);
            m_RatioUp.gameObject.SetActive(model.selectedPotentialBook != 0 && levelUpConfig.rate > 0 && levelUpConfig.materilaKind > 1);
            m_SuccessRatio.color = UIHelper.GetUIColor(model.selectedPotentialBook != 0 && levelUpConfig.rate > 0
                ? TextColType.DarkGreen : TextColType.LightYellow);
            m_UpgradeImage.gray = levelUpConfig.rate == 0 && model.selectedPotentialBook == 0;
@@ -622,14 +622,25 @@
        private void OnSpNeedItem()
        {
            var levelUpConfig = GetPotentialLevelUpConfig();
            if (levelUpConfig.rate < 10000 || model.selectedPotentialBook != 0)
            if (levelUpConfig.rate >= 10000)
            {
                SysNotifyMgr.Instance.ShowTip("SPSuccessHint");
                return;
            }
            if (model.selectedPotentialBook == 0)
            {
                WindowCenter.Instance.Open<PotentialItemUseWin>();
            }
            else
            {
                SysNotifyMgr.Instance.ShowTip("SPSuccessHint");
                //DesignDebug.Log("成功率已经够高了,不需要再增加概率了!");
                if (levelUpConfig.materilaKind > 1)
                {
                    WindowCenter.Instance.Open<PotentialItemUseWin>();
                }
                else
                {
                    ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(model.selectedPotentialBook);
                }
            }
        }
@@ -642,7 +653,7 @@
        {
            m_PotentialBook.gameObject.SetActive(_potentialBookId != 0);
            m_PotentialCount.gameObject.SetActive(_potentialBookId != 0);
            m_RemoveBook.gameObject.SetActive(_potentialBookId != 0);
            m_RemoveBook.gameObject.SetActive(false);
            m_AddBookSign.gameObject.SetActive(_potentialBookId == 0);
            if (_potentialBookId != 0)
            {
@@ -653,6 +664,7 @@
                bool satisfy = levelUpConfig.own >= levelUpConfig.need;
                m_PotentialCount.text = StringUtility.Contact(UIHelper.GetTextColorByItemColor(satisfy ?
                    TextColType.LightYellow : TextColType.Red, levelUpConfig.own.ToString()), "/", levelUpConfig.need);
                m_RemoveBook.gameObject.SetActive(levelUpConfig.materilaKind > 1);
            }
            DisplaySuccessRatio();
@@ -762,11 +774,11 @@
            var config = Config.Instance.Get<TreasureSkillConfig>(levelupId);
            if (config == null)
            {
                return new PotentialLevelUpConfig(0, 0, 0, 0);
                return new PotentialLevelUpConfig(0, 0, 0, 0, 0);
            }
            if (model.selectedPotentialBook == 0)
            {
                return new PotentialLevelUpConfig(config.InitialRate, 0, 0, 0);
                return new PotentialLevelUpConfig(config.InitialRate, 0, 0, 0, 0);
            }
            else
            {
@@ -784,7 +796,7 @@
                var need = config.MeterialNum2[index];
                var ratio = own >= need ? config.Rate[index] : config.InitialRate;
                return new PotentialLevelUpConfig(ratio, index + 1, own, need);
                return new PotentialLevelUpConfig(ratio, index + 1, own, need, config.Meterial2ID.Length);
            }
        }
@@ -1050,13 +1062,15 @@
            public int rate;
            public int need;
            public int own;
            public int materilaKind;
            public PotentialLevelUpConfig(int _rate, int _materilaIndex, int _own, int _need)
            public PotentialLevelUpConfig(int _rate, int _materilaIndex, int _own, int _need,int materilaKind)
            {
                this.rate = _rate;
                this.materilaIndex = _materilaIndex;
                this.need = _need;
                this.own = _own;
                this.materilaKind = materilaKind;
            }
        }
        [Serializable]
System/WindowJump/WindowJumpMgr.cs
@@ -48,7 +48,7 @@
    ComposeWinModel composeModel { get { return ModelCenter.Instance.GetModel<ComposeWinModel>(); } }
    public bool IsJumpState { get; private set; }
    private int jumpPhase = 0;
    public int jumpPhase { get; private set;}
    public int jumpType { get; private set; }
    public void GetPreAllOpenWin()
    {