少年修仙传客户端代码仓库
client_Wu Xijin
2018-09-19 42044e959bbd3f169519fce262bfeb2c84932cb8
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
17个文件已修改
6个文件已添加
1034 ■■■■■ 已修改文件
System/Chat/ChatCenter.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatTip.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/FairyChatWin.cs 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/FairyChatWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/TeamChatWin.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/TeamChatWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FriendSystem/New/FriendsModel.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FriendSystem/New/SocialWin.cs 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemOverdueModel.cs 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/ChatFrame.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FeatureNoticeModel.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FlyingShoesTask.cs 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/PlayerMainDate.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/SideMission.cs 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/SkillTaskWin.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/SkillTaskWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskListTip.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/ScrollerController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/SkillModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/SkillPassWin.cs 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureNewGotWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/VipInvestWin.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCenter.cs
@@ -46,10 +46,12 @@
            var _funcCfg = Config.Instance.Get<FuncConfigConfig>("BugleItem");
            bugleItem = int.Parse(_funcCfg.Numerical1);
            chatChannels = new List<ChatInfoType>();
            for (int i = (int)ChatInfoType.System; i <= (int)ChatInfoType.Friend; i++)
            {
                chatChannels.Add((ChatInfoType)i);
            }
            chatChannels.Add(ChatInfoType.System);
            chatChannels.Add(ChatInfoType.World);
            chatChannels.Add(ChatInfoType.Area);
            chatChannels.Add(ChatInfoType.Invite);
            chatChannels.Add(ChatInfoType.Trumpet);
            chatChannels.Add(ChatInfoType.Friend);
        }
        public event Action<string, bool, bool> UpdateChatValueEvent;
@@ -755,10 +757,11 @@
                return;
            }
            openChatAfterCollect = false;
            if (!WindowCenter.Instance.CheckOpen<ChatWin>())
            if (!WindowCenter.Instance.CheckOpen<SocialWin>())
            {
                ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
                WindowCenter.Instance.Open<ChatWin>();
                WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
                WindowCenter.Instance.Open<SocialWin>(false, 2);
            }
        }
        #endregion
System/Chat/ChatTip.cs
@@ -145,7 +145,7 @@
    private void OnChatClick()
    {
        if (WindowCenter.Instance.CheckOpen<ChatWin>())
        if (WindowCenter.Instance.CheckOpen<ChatWin>() || WindowCenter.Instance.CheckOpen<SocialWin>())
        {
            return;
        }
@@ -154,6 +154,9 @@
        if (mapId == 31230)
        {
            ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
            WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
            WindowCenter.Instance.Open<SocialWin>(false, 2);
            return;
        }
        WindowCenter.Instance.Open<ChatWin>();
    }
@@ -211,7 +214,7 @@
    void OnChatDataClick(ChatData data)
    {
        if (WindowCenter.Instance.CheckOpen<ChatWin>())
        if (WindowCenter.Instance.CheckOpen<ChatWin>() || WindowCenter.Instance.CheckOpen<SocialWin>())
        {
            return;
        }
@@ -221,7 +224,20 @@
        {
            ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
        }
        WindowCenter.Instance.Open<ChatWin>();
        switch (ChatCtrl.Inst.presentChatType)
        {
            case ChatInfoType.Team:
                WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
                WindowCenter.Instance.Open<SocialWin>(false, 1);
                break;
            case ChatInfoType.Fairy:
                WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
                WindowCenter.Instance.Open<SocialWin>(false, 2);
                break;
            default:
                WindowCenter.Instance.Open<ChatWin>();
                break;
        }
    }
    void OnRefreshChatTip(ChatInfoType type)
System/Chat/FairyChatWin.cs
New file
@@ -0,0 +1,97 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Wednesday, September 19, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class FairyChatWin : Window
    {
        [SerializeField] ChatSendComponent m_ChatSend;
        [SerializeField] ChatContentBehaviour m_ChatContent;
        [SerializeField] RectTransform m_ContainerNoFairy;
        [SerializeField] Button m_JoinFairy;
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            m_JoinFairy.AddListener(JoinFairy);
        }
        protected override void OnPreOpen()
        {
            WindowCenter.Instance.windowBeforeOpenEvent += WindowBeforeOpenEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += MyFairyRefresh;
            PlayerDatas.Instance.fairyData.OnRefreshFairyMine += MyFairyRefresh;
            ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
            m_ChatContent.chatType = ChatInfoType.Fairy;
            MyFairyRefresh();
        }
        protected override void OnActived()
        {
            base.OnActived();
            var parent = WindowCenter.Instance.Get<SocialWin>();
            if (parent != null)
            {
                m_ChatSend.parent = parent;
            }
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            WindowCenter.Instance.windowBeforeOpenEvent -= WindowBeforeOpenEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= MyFairyRefresh;
            PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= MyFairyRefresh;
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void JoinFairy()
        {
            int limit = Config.Instance.Get<FuncOpenLVConfig>((int)FuncOpenEnum.Fairy).LimitLV;
            if (PlayerDatas.Instance.baseData.LV < limit)
            {
                MessageWin.Inst.ShowFixedTip(Language.Get("L1136", limit));
                return;
            }
            WindowCenter.Instance.CloseImmediately<SocialWin>();
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.UnionFunc3);
        }
        void MyFairyRefresh()
        {
            m_ContainerNoFairy.gameObject.SetActive(!PlayerDatas.Instance.fairyData.HasFairy);
            m_ChatSend.gameObject.SetActive(PlayerDatas.Instance.fairyData.HasFairy);
        }
        private void WindowBeforeOpenEvent(Window win)
        {
            if (win is SocialWin)
            {
                m_ChatSend.parent = win;
            }
        }
    }
}
System/Chat/FairyChatWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e5cba53e40a60a847b072488a5a85b29
timeCreated: 1537325731
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Chat/TeamChatWin.cs
New file
@@ -0,0 +1,81 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Wednesday, September 19, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class TeamChatWin : Window
    {
        [SerializeField] ChatSendComponent m_ChatSend;
        [SerializeField] ChatContentBehaviour m_ChatContent;
        [SerializeField] RectTransform m_NoTeamContainer;
        TeamModel team { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
            WindowCenter.Instance.windowBeforeOpenEvent += WindowBeforeOpenEvent;
            team.myTeamRefreshEvent += MyTeamRefresh;
            ChatCtrl.Inst.presentChatType = ChatInfoType.Team;
            m_ChatContent.chatType = ChatInfoType.Team;
            MyTeamRefresh();
        }
        protected override void OnActived()
        {
            base.OnActived();
            var parent = WindowCenter.Instance.Get<SocialWin>();
            if (parent != null)
            {
                m_ChatSend.parent = parent;
            }
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            WindowCenter.Instance.windowBeforeOpenEvent -= WindowBeforeOpenEvent;
            team.myTeamRefreshEvent -= MyTeamRefresh;
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void WindowBeforeOpenEvent(Window win)
        {
            if(win is SocialWin)
            {
                m_ChatSend.parent = win;
            }
        }
        private void MyTeamRefresh()
        {
            m_ChatSend.gameObject.SetActive(team.myTeam.inTeam);
            m_NoTeamContainer.gameObject.SetActive(!team.myTeam.inTeam);
        }
    }
}
System/Chat/TeamChatWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e3087f05daf1a3245ac52b7732703971
timeCreated: 1537322992
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/FriendSystem/New/FriendsModel.cs
@@ -911,6 +911,11 @@
            else
            {
                ChatCtrl.Inst.presentChatType = ChatInfoType.Friend;
                if (WindowCenter.Instance.CheckOpen<SocialWin>())
                {
                    WindowJumpMgr.Instance.ClearJumpData();
                    WindowCenter.Instance.CloseImmediately<SocialWin>();
                }
                WindowCenter.Instance.Open<ChatWin>();
            }
        }
System/FriendSystem/New/SocialWin.cs
@@ -1,56 +1,86 @@
using System;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class SocialWin : Window
    {
        [SerializeField] FunctionButton xianyuanBtn;
        [SerializeField] FunctionButtonGroup btnGroup;
        [SerializeField] Button closeBtn;
        [SerializeField] GameObject friendTipsObj;
        [SerializeField] ChatSendComponent m_ChatSend;
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            closeBtn.AddListener(CloseClick);
            xianyuanBtn.AddListener(ClickXianYuanBtn);
        }
        protected override void OnPreOpen()
        {
            m_ChatSend.parent = this;
        }
        protected override void OnActived()
        {
            base.OnActived();
            btnGroup.TriggerByOrder(functionOrder);
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        private void ClickXianYuanBtn()
        {
            friendTipsObj.SetActive(true);
            functionOrder = xianyuanBtn.order;
        }
    }
}
using System;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class SocialWin : Window
    {
        [SerializeField] FunctionButton xianyuanBtn;
        [SerializeField] FunctionButton m_TeamChat;
        [SerializeField] FunctionButton m_FairyChat;
        [SerializeField] FunctionButtonGroup btnGroup;
        [SerializeField] Button closeBtn;
        [SerializeField] GameObject friendTipsObj;
        [SerializeField] ChatSendComponent m_ChatSend;
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            closeBtn.AddListener(CloseClick);
            xianyuanBtn.AddListener(ClickXianYuanBtn);
            m_TeamChat.AddListener(TeamChat);
            m_FairyChat.AddListener(FairyChat);
        }
        protected override void OnPreOpen()
        {
            m_ChatSend.parent = this;
        }
        protected override void OnActived()
        {
            base.OnActived();
            btnGroup.TriggerByOrder(functionOrder);
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            CloseChild();
        }
        protected override void OnAfterClose()
        {
            if (!WindowJumpMgr.Instance.IsJumpState)
            {
                WindowCenter.Instance.Open<MainInterfaceWin>();
            }
        }
        private void ClickXianYuanBtn()
        {
            CloseChild();
            friendTipsObj.SetActive(true);
            functionOrder = xianyuanBtn.order;
        }
        private void TeamChat()
        {
            CloseChild();
            WindowCenter.Instance.Open<TeamChatWin>();
            functionOrder = m_TeamChat.order;
        }
        private void FairyChat()
        {
            CloseChild();
            WindowCenter.Instance.Open<FairyChatWin>();
            functionOrder = m_FairyChat.order;
        }
        void CloseChild()
        {
            friendTipsObj.SetActive(false);
            WindowCenter.Instance.CloseImmediately<TeamChatWin>();
            WindowCenter.Instance.CloseImmediately<FairyChatWin>();
        }
    }
}
System/KnapSack/Logic/ItemOverdueModel.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using LitJson;
using TableConfig;
using UnityEngine;
@@ -9,7 +10,7 @@
{
    public class ItemOverdueModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk, ISwitchAccount
    {
        private List<ItemModel> guardItemlist = new List<ItemModel>();
        private List<ItemModel> overdueGuardPushlist = new List<ItemModel>();
        private Dictionary<int, List<int>> itemOverdueDict;
        public static event Action FirstGoldWPOver;//首冲试用结束
@@ -37,7 +38,7 @@
        public readonly int VipExperirnceID = 985;
        public readonly int VipCardID = 978;
        Dictionary<int, Dictionary<int, List<ItemModel>>>  allGuardDict = new Dictionary<int, Dictionary<int, List<ItemModel>>>(); //守护类型,守护ID
        public override void Init()
        {
            SysNotifyMgr.Instance.sysNotifyEvent += GetSysNotify;
@@ -191,23 +192,49 @@
            switch (sysID)
            {
                case "Guardian_Timeout":
                    DebugEx.Log("Guardian_Timeout:" + list.Count);
                    if (list.Count > 1)
                    {
                        guardOverdueIndex = int.Parse(list[1].ToString());
                        ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptItem, guardOverdueIndex);
                        if (itemModel != null)
                        {
                            if (itemModel.chinItemModel.EquipPlace == (int)RoleEquipType.retSpiritAnimal)
                            List<int> renewallist = GetRenewallist(itemModel.itemId);
                            if(renewallist != null && allGuardDict.ContainsKey(renewallist[0]))
                            {
                                OnGetOverdueItem(itemModel.itemInfo.ItemID,itemModel.itemInfo.ItemGUID,itemModel.itemInfo.ItemPlace);
                                Dictionary<int, List<ItemModel>> pairs = allGuardDict[renewallist[0]];
                                bool isOverdue = true;
                                List<int> idlist = pairs.Keys.ToList();
                                idlist.Sort();
                                List<ItemModel> models = null;
                                for (int i = idlist.Count - 1; i > -1; i--)
                                {
                                    models = pairs[idlist[i]];
                                    for (int j = 0; j < models.Count; j++)
                                    {
                                        if (!modelInterface.IsOverdue(models[j].itemInfo.ItemGUID, models[j].itemId, models[j].useDataDict))
                                        {
                                            isOverdue = false;
                                            break;
                                        }
                                    }
                                }
                                models = pairs[idlist[idlist.Count - 1]];
                                if (isOverdue && models != null && models.Count > 0)
                                {
                                    ItemModel overdueModel = models[0];
                                    guardOverdueIndex = overdueModel.itemInfo.ItemPlace;
                                    OnGetOverdueItem(overdueModel.itemInfo.ItemID, overdueModel.itemInfo.ItemGUID, overdueModel.itemInfo.ItemPlace);
                                }
                                else
                                {
                                    guardOverdueIndex = -1;
                                }
                            }
                        }
                    }
                    break;
                case "VipTiyan_Timeout":
                    OnGetOverdueItem(VipExperirnceID, "", -1);
                    break;
                case "Vip_Timeout":
@@ -232,65 +259,41 @@
        public void GetOverdueGuard()
        {
            guardItemlist.Clear();
            List<string> itemEffectlist = modelInterface.GetItemEffectTimelist();
            int i = 0;
            for (i = 0; i < itemEffectlist.Count; i++)
            SetAllGuardIdlist();
            overdueGuardPushlist.Clear();
            foreach(var type in allGuardDict.Keys)
            {
                ItemModel itemModel = playerPack.GetItemModelByGUID(itemEffectlist[i]);
                if (itemModel != null && itemModel.packType == PackType.rptItem)
                bool isOverdue = true;
                List<int> idlist = allGuardDict[type].Keys.ToList();
                idlist.Sort();
                List<ItemModel> models = null;
                for (int i = idlist.Count - 1; i > -1; i--)
                {
                    if (itemModel.chinItemModel.EquipPlace == (int)RoleEquipType.retSpiritAnimal)
                    models = allGuardDict[type][idlist[i]];
                    for (int j = 0; j < models.Count; j++)
                    {
                        bool isOverdue = false;
                        ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(itemModel.itemInfo.ItemGUID);
                        if (itemModel.chinItemModel.ExpireTime > 0)
                        if (!modelInterface.IsOverdue(models[j].itemInfo.ItemGUID, models[j].itemId, models[j].useDataDict))
                        {
                            switch ((EquipReduceType)itemModel.chinItemModel.EndureReduceType)
                            {
                                case EquipReduceType.Def_EquipReduceType_Time:
                                    List<int> itemEffectTime = itemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
                                    if (itemEffectTime != null && itemEffectTime[0] != 0)
                                    {
                                        if (cool == null || cool.GetRemainTime() <= 0)
                                        {
                                            isOverdue = true;
                                        }
                                    }
                                    break;
                                case EquipReduceType.Def_EquipReduceType_RTimeItem:
                                    if (cool == null || cool.GetRemainTime() <= 0)
                                    {
                                        isOverdue = true;
                                    }
                                    break;
                            }
                        }
                        if (isOverdue)
                        {
                            guardItemlist.Add(itemModel);
                            isOverdue = false;
                            break;
                        }
                    }
                }
            }
            if (guardItemlist.Count > 0)
                models = allGuardDict[type][idlist[idlist.Count - 1]];
                if (isOverdue && models != null && models.Count > 0)
                {
                    ItemModel itemModel = models[0];
                    if (!overdueGuardPushlist.Contains(itemModel))
                    {
                        overdueGuardPushlist.Add(itemModel);
                    }
                }
            }
            for(int i = 0; i < overdueGuardPushlist.Count; i++)
            {
                guardItemlist.Sort(CompareItemID);
                OnGetOverdueItem(guardItemlist[0].itemInfo.ItemID, guardItemlist[0].itemInfo.ItemGUID, guardItemlist[0].itemInfo.ItemPlace);
                OnGetOverdueItem(overdueGuardPushlist[i].itemInfo.ItemID, overdueGuardPushlist[i].itemInfo.ItemGUID, overdueGuardPushlist[i].itemInfo.ItemPlace);
            }
        }
        public int CompareItemID(ItemModel start, ItemModel end)
        {
            int startId = start.itemInfo.ItemID;
            int endId = end.itemInfo.ItemID;
            if (startId.CompareTo(endId) != 0)
                return -startId.CompareTo(endId);
            return 0;
        }
        public bool IsMoneyEnough(int moneyType, int needMoney)
@@ -302,6 +305,51 @@
            return false;
        }
        public void SetAllGuardIdlist()
        {
            allGuardDict.Clear();
            foreach(var id in itemOverdueDict.Keys)
            {
                SetGurdIdlistByPack(PackType.rptItem,id);
                SetGurdIdlistByPack(PackType.rptEquip,id);
                SetGurdIdlistByPack(PackType.rptWarehouse,id);
            }
        }
        private void SetGurdIdlistByPack(PackType type,int itemId)
        {
            SinglePackModel singlePack = playerPack.GetSinglePackModel(type);
            if (singlePack == null) return;
            List<ItemModel> itemModels = null;
            singlePack.GetItemCountByID(itemId, out itemModels);
            if (itemModels == null) return;
            List<int> renewallist = GetRenewallist(itemId);
            if (renewallist == null) return;
            if (!allGuardDict.ContainsKey(renewallist[0]))
            {
                Dictionary<int, List<ItemModel>> pairs = new Dictionary<int, List<ItemModel>>();
                List<ItemModel> modellist = new List<ItemModel>();
                modellist.AddRange(itemModels);
                pairs.Add(itemId,modellist);
                allGuardDict.Add(renewallist[0],pairs);
            }
            else
            {
                if(!allGuardDict[renewallist[0]].ContainsKey(itemId))
                {
                    List<ItemModel> modellist = new List<ItemModel>();
                    modellist.AddRange(itemModels);
                    allGuardDict[renewallist[0]].Add(itemId, modellist);
                }
                else
                {
                    allGuardDict[renewallist[0]][itemId].AddRange(itemModels);
                }
            }
        }
        public List<int> GetRenewallist(int itemID)
        {
            List<int> renewallist = null;
System/MainInterfacePanel/ChatFrame.cs
@@ -307,6 +307,7 @@
            //MainRedDot.Instance.redPointFriendChat.state = RedPointState.None;
            //ChatCtrl.Inst.presentChatType = ChatInfoType.Friend;
            //WindowCenter.Instance.Open<ChatWin>();
            WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
            WindowCenter.Instance.Open<SocialWin>();
        }
System/MainInterfacePanel/FeatureNoticeModel.cs
@@ -11,7 +11,7 @@
using Snxxz.UI;
//功能预告红点
public class FeatureNoticeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk,ISwitchAccount
public class FeatureNoticeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public List<FunctionForecastConfig> FunctionList = new List<FunctionForecastConfig>();
    private const int Redpoint_key1 = 38;
@@ -27,34 +27,38 @@
    public void OnBeforePlayerDataInitialize()
    {
    }
    public void OnPlayerLoginOk()
    {
        RedDotStatus();
        PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV;
        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
        treasureModel.treasureStateChangeEvent -= treasureStateChangeEvent;
        treasureModel.treasureStageUpEvent -= treasureStageUpEvent;
    }
    public void OnPlayerLoginOk()
    {
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
        PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV;
        treasureModel.treasureStateChangeEvent += treasureStateChangeEvent;
        treasureModel.treasureStageUpEvent += treasureStageUpEvent;
        StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
        StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
        RedDotStatus();
    }
    public override void UnInit()
    {
    }
    public void OnSwitchAccount()
    private void OnStageLoadFinish()
    {
        OpenFuncId = 0;
        RedPointChange = false;
        IsRedPoint = false;
    }
        if (!(StageManager.Instance.CurrentStage is DungeonStage))
        {
            OpenFuncId = 0;
            RedPointChange = false;
            IsRedPoint = false;
        }
    }
    private void treasureStageUpEvent(int obj)
    {
        RedDotStatus();
System/MainInterfacePanel/FlyingShoesTask.cs
@@ -120,33 +120,6 @@
            m_ImgSelected.SetActive(true);
            taskmodel.GetNowTaskID = Task_ID;
            if (mainModel.TaskId_Skill1.Contains(Task_ID))//特殊支线任务解锁被动技能的
            {
                if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv)
                {
                    int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                    if (itemNumber >= mainModel.ItemNumber)
                    {
                        taskmodel.CompletionOfTask(Task_ID);
                        WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                    }
                    else
                    {
                        StateDetermination();
                        var mapModel = ModelCenter.Instance.GetModel<MapModel>();
                        var point = mapModel.GetRecommendHangPoint();
                        var config = Config.Instance.Get<MapEventPointConfig>(point);
                        MapTransferUtility.Instance.MoveToNPC(config.NPCID);
                    }
                }
                else
                {
                    WindowCenter.Instance.Open<HoistingWin>();
                }
                return;
            }
            if (mainModel.WingTask == Task_ID && ((int)taskmodel.GetTaskStatus(Task_ID) == 0 || (int)taskmodel.GetTaskStatus(Task_ID) == -5))//关于特殊翅膀任务
            {
                if (playerPack.GetSinglePackModel(PackType.rptItem) == null)
@@ -279,24 +252,6 @@
        private void OnClickDeliveryButton()//传送符
        {
            //--------------特殊任务的传送逻辑
            if (mainModel.TaskId_Skill1.Contains(Task_ID))
            {
                var mapModel = ModelCenter.Instance.GetModel<MapModel>();
                var point = mapModel.GetRecommendHangPoint();
                var config = Config.Instance.Get<MapEventPointConfig>(point);
                var flyBootOwn = ModelCenter.Instance.GetModel<PlayerPackModel>().GetItemCountByID(PackType.rptItem, GeneralConfig.Instance.flyBootItemId);
                var isVipFreeTransfer = ModelCenter.Instance.GetModel<VipModel>().GetVipPrivilegeCnt(VipPrivilegeType.FreeTransfer) > 0;
                if (isVipFreeTransfer || flyBootOwn > 0)
                {
                    MapTransferUtility.Instance.MissionFlyTo(config.MapID, config.NPCID);
                }
                else
                {
                    MapTransferUtility.Instance.MoveToNPC(config.NPCID);
                }
                return;
            }
            mainModel.FlyShoseTaskID = Task_ID;
            string _FlyID = Config.Instance.Get<FuncConfigConfig>("TransportPay").Numerical1;
            int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, int.Parse(_FlyID));//获取飞鞋的数量
@@ -380,52 +335,16 @@
            {
                m_TitleText.text = "<color=#ec4bf6>" + TaskTitle(TaskID) + "</color>";
            }
            int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
            if (mainModel.TaskId_Skill1.Contains(TaskID))
            {
                if (itemNumber >= mainModel.ItemNumber)
                {
                    m_TitleText.text = "<color=#109d06>" + TaskTitle(TaskID) + "</color>";
                }
                else
                {
                    m_TitleText.text = "<color=#feed28>" + TaskTitle(TaskID) + "</color>";
                }
            }
            string str = taskmodel.allMissionDict[TaskID].InforList;
            var taskinfo = Config.Instance.Get<TASKINFOConfig>(str);
            if (mainModel.TaskId_Skill1.Contains(TaskID))//特殊任务
            var taskinfo = Config.Instance.Get<TASKINFOConfig>(str);
            if (taskinfo != null)
            {
                if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv)
                {
                    string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, itemNumber);
                    string Str_B = Language.Get("PassiveSkillTask2");
                    if (itemNumber >= mainModel.ItemNumber)
                    {
                        m_ContentText.text = Str_B;
                    }
                    else
                    {
                        m_ContentText.text = Str_A;
                    }
                }
                else
                {
                    string Str_C = string.Format(Language.Get("PassiveSkillTask5"), mainModel.TaskLv);
                    m_ContentText.text = Str_C;
                }
                m_ContentText.text = taskinfo.show_writing;
            }
            else
            {
                if (taskinfo != null)
                {
                    m_ContentText.text = taskinfo.show_writing;
                }
                else
                {
                    DebugEx.LogError("任务表格PyTaskInfo配置缺失");
                    return;
                }
                DebugEx.LogError("任务表格PyTaskInfo配置缺失");
                return;
            }
            bool isOPenTransferButton = HrefAnalysis.Inst.ContainsKey(taskinfo.show_writing, "flynpc");
            if (isOPenTransferButton && !IsKaJiBool)
@@ -436,20 +355,7 @@
            {
                m_DeliveryButton.gameObject.SetActive(false);
            }
            //----------------特殊采集魔团任务的传送云处理
            if (mainModel.TaskId_Skill1.Contains(TaskID))//特殊任务
            {
                if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv)
                {
                    m_DeliveryButton.gameObject.SetActive(true);
                }
                else
                {
                    m_DeliveryButton.gameObject.SetActive(false);
                }
            }
            m_ContentText.raycastTarget = false;
            if (taskmodel._DicTaskInformation.ContainsKey(TaskID))
            {
                Dictionary<string, string> SkillDic = new Dictionary<string, string>();
System/MainInterfacePanel/PlayerMainDate.cs
@@ -115,12 +115,9 @@
    public bool IsEmperor = false;
    //---------关于任务需要的数据
    public List<int> TaskId_Skill = new List<int>();
    public List<int> TaskId_Skill1 = new List<int>();
    public int ItemID = 0;
    public int UnitPrice = 0;
    public int ItemNumber = 0;
    public int TaskLv = 0;//任务等级
    public List<int> TaskId_Skill = new List<int>();//任务ID
    public List<int> SkillIndex = new List<int>();//技能槽索引
    public List<int> NeedFairyJade = new List<int>();//所需解锁仙玉
    //-----关于支线翅膀任务的特殊逻辑
    public int WingTask = 0;
@@ -169,7 +166,8 @@
    private void GetPassiveSkillTask()//获取任务数据
    {
        TaskId_Skill.Clear();
        TaskId_Skill1.Clear();
        SkillIndex.Clear();
        NeedFairyJade.Clear();
        var PassiveSkillTaskconfig = Config.Instance.Get<FuncConfigConfig>("PassiveSkillTask");
        int[] TaskId_SkillInt = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical1);
        for (int i = 0; i < TaskId_SkillInt.Length; i++)
@@ -179,18 +177,13 @@
        int[] TaskId_SkillInt1 = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical2);
        for (int i = 0; i < TaskId_SkillInt1.Length; i++)
        {
            TaskId_Skill1.Add(TaskId_SkillInt1[i]);
            SkillIndex.Add(TaskId_SkillInt1[i]);
        }
        int[] PassiveSkillTask = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical3);
        string str4 =PassiveSkillTaskconfig.Numerical4;
        TaskLv = int.Parse(str4);
        if (PassiveSkillTask.Length >= 3)
        int[] TaskId_SkillInt2 = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical3);
        for (int i = 0; i < TaskId_SkillInt2.Length; i++)
        {
            ItemID = PassiveSkillTask[0];
            UnitPrice = PassiveSkillTask[1];
            ItemNumber = PassiveSkillTask[2];
        }
            NeedFairyJade.Add(TaskId_SkillInt2[i]);
        }
    }
System/MainInterfacePanel/SideMission.cs
@@ -45,8 +45,6 @@
        {
            TaskIdNow = 0;
            _TaskRamusList.OnRefreshCell += OnRefreshGridCell;
            playerPack.RefreshItemCountAct += RefreshItemCountAct;
            playerPack.ItemCntReduceAct += ItemCntReduceAct;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
            OnCreateGridLineCell(_TaskRamusList);
        }
@@ -54,101 +52,16 @@
        private void OnDisable()
        {
            _TaskRamusList.OnRefreshCell -= OnRefreshGridCell;
            playerPack.RefreshItemCountAct -= RefreshItemCountAct;
            playerPack.ItemCntReduceAct -= ItemCntReduceAct;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
        }
        private void Updatefighting(PlayerDataRefresh obj)
        {
            if (obj == PlayerDataRefresh.LV)
            {
                OpenShowButton();
            }
        }
        private void OpenShowButton()
        {
            if (mainModel.TaskId_Skill1.Contains(TaskIdNow))
            {
                if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv)
                {
                    _Btn_Forward.gameObject.SetActive(true);
                }
                else
                {
                    _Btn_Forward.gameObject.SetActive(false);
                }
            }
        }
        private void ItemCntReduceAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见
                    }
                }
            }
        }
        private void RefreshItemCountAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见
                    }
                }
            }
        }
        private void ForwardButton()
        {
            if (mainModel.TaskId_Skill1.Contains(TaskIdNow))
            {
                int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                if (itemNumber >= mainModel.ItemNumber)
                {
                    taskmodel.CompletionOfTask(TaskIdNow);
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                }
                else
                {
                    int Gold = (int)UIHelper.GetMoneyCnt(1);//仙玉
                    string strNull = string.Empty;
                    int needNumber = (mainModel.ItemNumber - itemNumber) * mainModel.UnitPrice;//所需金额
                    strNull = string.Format(Language.Get("PassiveSkillTask3"), needNumber);
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strNull, (bool isOk) =>
                    {
                        if (isOk)
                        {
                            if (Gold >= needNumber)
                            {
                                taskmodel.CompletionOfTask(TaskIdNow);
                                WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                            }
                            else
                            {
                                if (VersionConfig.Get().isBanShu)
                                {
                                    SysNotifyMgr.Instance.ShowTip("GoldErr");
                                    return;
                                }
                                WindowCenter.Instance.Open<RechargeTipWin>();
                            }
                        }
                    });
                }
                return;
            }
            if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3)
            {
                taskmodel.CompletionOfTask(TaskIdNow);
@@ -211,7 +124,6 @@
                    if (TaskId != TaskIdNow)
                    {
                        TaskIdNow = TaskId;
                        OpenShowButton();
                        _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见
                    }
                });
@@ -228,37 +140,12 @@
            _Text_TaskDescribe.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Desclist).show_writing;//任务描述
            string strINfor = taskmodel.SideQuestsDic[taskID].InforList;
            string str = string.Empty;
            if (mainModel.TaskId_Skill1.Contains(taskID))
            {
                if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv)
                {
                    int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                    if (itemNumber >= mainModel.ItemNumber)
                    {
                        string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, mainModel.ItemNumber);
                        str = Str_A;
                    }
                    else
                    {
                        string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, itemNumber);
                        str = Str_A;
                    }
                }
                else
                {
                    string Str_C = string.Format(Language.Get("PassiveSkillTask5"), mainModel.TaskLv);
                    str = Str_C;
                }
            }
            else
            {
                str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing;
            }
            str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing;
            str = WordAnalysis.Color_Start_Regex.Replace(str, string.Empty);
            str = WordAnalysis.Color_End_Regex.Replace(str, string.Empty);
            _Text_TaskTarget.text = str;//任务目标
            if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3 || mainModel.TaskId_Skill1.Contains(taskID))//能够进行立即完成的支线任务
            if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3)//能够进行立即完成的支线任务
            {
                _Text_Forward.text = string.Format(Language.Get("FinishAtOnce_Z"));
            }
System/MainInterfacePanel/SkillTaskWin.cs
New file
@@ -0,0 +1,49 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Tuesday, September 18, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class SkillTaskWin : Window
    {
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
    }
}
System/MainInterfacePanel/SkillTaskWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 0b9954631fd01f04e9b1422443d7cb4c
timeCreated: 1537273256
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/MainInterfacePanel/TaskListTip.cs
@@ -102,8 +102,6 @@
            model.collectingTreasureChangeEvent += OnCollectingTreasureChangeEvent;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            TreasureNewGotWin.CloseTreasureNewGotWinEvent += CloseTreasureNewGotWinEvent;
            playerPack.RefreshItemCountAct += RefreshItemCountAct;
            playerPack.ItemCntReduceAct += ItemCntReduceAct;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
            OnCollectingTreasureChangeEvent(TreasureCategory.Human);
            TaskScheduling();//任务排序  1
@@ -134,54 +132,13 @@
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            TreasureNewGotWin.CloseTreasureNewGotWinEvent -= CloseTreasureNewGotWinEvent;
            PlayerTaskDatas.MainCardLevelChange -= MainCardLevelChange;//卡级任务修改
            playerPack.RefreshItemCountAct -= RefreshItemCountAct;
            playerPack.ItemCntReduceAct -= ItemCntReduceAct;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
        }
        private void Updatefighting(PlayerDataRefresh obj)//等级刷新
        {
            if (obj == PlayerDataRefresh.LV)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        TaskIdUpdate(key);
                    }
                }
            }
        }
        private void ItemCntReduceAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3== mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        TaskIdUpdate(key);
                    }
                }
            }
        }
        private void RefreshItemCountAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        TaskIdUpdate(key);
                    }
                }
            }
        }
        private void TaskIdUpdate(int taskId)
        {
            int leng = Content.childCount;
System/Skill/ScrollerController.cs
@@ -423,7 +423,7 @@
    public void ResetScrollPos()
    {
        if (_data.Count == 0)
        if (_data.Count == 0 || !inited)
        {
            return;
        }
System/Skill/SkillModel.cs
@@ -87,7 +87,7 @@
                taskHoleDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical4);
            }
            funcCfg = Config.Instance.Get<FuncConfigConfig>("PassiveSkillTask");
            immediatelyUnlockTask = int.Parse(funcCfg.Numerical2);
            immediatelyUnlockTask = 0;//int.Parse(funcCfg.Numerical2);
            funcCfg = Config.Instance.Get<FuncConfigConfig>("PassSkillEquipGetWay");
            if (funcCfg != null)
            {
System/Skill/SkillPassWin.cs
@@ -627,35 +627,35 @@
        void ImmediatelyUnlock()
        {
            var count = pack.GetItemCountByID(PackType.rptItem, taskMain.ItemID);
            if (count >= taskMain.ItemNumber)
            {
                task.CompletionOfTask(model.immediatelyUnlockTask);
            }
            else
            {
                var requireJade = (ulong)((taskMain.ItemNumber - count) * taskMain.UnitPrice);
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("PassiveSkillTask3", requireJade),
                    (bool isOk) =>
                {
                    if (isOk)
                    {
                        if (UIHelper.GetMoneyCnt(1) >= requireJade)
                        {
                            task.CompletionOfTask(model.immediatelyUnlockTask);
                        }
                        else
                        {
                            if (VersionConfig.Get().isBanShu)
                            {
                                SysNotifyMgr.Instance.ShowTip("GoldErr");
                                return;
                            }
                            WindowCenter.Instance.Open<RechargeTipWin>();
                        }
                    }
                });
            }
            //var count = pack.GetItemCountByID(PackType.rptItem, taskMain.ItemID);
            //if (count >= taskMain.ItemNumber)
            //{
            //    task.CompletionOfTask(model.immediatelyUnlockTask);
            //}
            //else
            //{
            //    var requireJade = (ulong)((taskMain.ItemNumber - count) * taskMain.UnitPrice);
            //    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("PassiveSkillTask3", requireJade),
            //        (bool isOk) =>
            //    {
            //        if (isOk)
            //        {
            //            if (UIHelper.GetMoneyCnt(1) >= requireJade)
            //            {
            //                task.CompletionOfTask(model.immediatelyUnlockTask);
            //            }
            //            else
            //            {
            //                if (VersionConfig.Get().isBanShu)
            //                {
            //                    SysNotifyMgr.Instance.ShowTip("GoldErr");
            //                    return;
            //                }
            //                WindowCenter.Instance.Open<RechargeTipWin>();
            //            }
            //        }
            //    });
            //}
        }
        private void OnClickFunc(CellView cell)
System/Treasure/TreasureNewGotWin.cs
@@ -317,7 +317,8 @@
                    index++;
                    if (treasure.treasureStages[k].unlockType == TreasureStageUnlock.Func ||
                        treasure.treasureStages[k].unlockType == TreasureStageUnlock.Skill ||
                        treasure.treasureStages[k].unlockType == TreasureStageUnlock.Treasure)
                        treasure.treasureStages[k].unlockType == TreasureStageUnlock.Treasure ||
                        treasure.treasureStages[k].unlockType == TreasureStageUnlock.TreasureSoul)
                    {
                        _stage = treasure.treasureStages[k];
                        displayStageCount++;
System/Vip/VipInvest/VipInvestWin.cs
@@ -14,6 +14,8 @@
        [SerializeField] GameObject m_Realized_BGM;
        [SerializeField] Text m_RemainingDays;//剩余天数
        [SerializeField] Button m_GoToVipBoss;
        [SerializeField] Text m_FairyJadeText;//仙玉
        [SerializeField] Text m_TieTheJadeText;//绑玉
        VipInvestModel _investModel;
        VipInvestModel investModel { get { return _investModel ?? (_investModel = ModelCenter.Instance.GetModel<VipInvestModel>()); } }
        ItemTipsModel _tipsModel;
@@ -42,7 +44,7 @@
            InvestInfo = investModel.GetInvestInfoByType((int)InvestType.Vip);
            cycle = investModel.GetInvestCycle(InvestInfo.curDay);
            investIndex = investModel.GetVipInvestIndex();
            GetFairyJade();
            if (InvestInfo.curDay <= 0)
            {
                m_RemainingDays.text = string.Format(Language.Get("TheRemainingNumberDays_Z"), UIHelper.GetTextColorByItemColor(TextColType.Green, 0.ToString(), true));
@@ -70,6 +72,7 @@
        protected override void OnAfterOpen()
        {
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV;
            if (investModel.redPointStre1.state == RedPointState.Simple)
            {
                investModel.IsRedpoint = false;
@@ -80,9 +83,13 @@
            }
        }
        protected override void OnPreClose()
        {
            investModel.RefreshInvestAct -= RefreshInvestState;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV;
        }
        protected override void OnAfterClose()
@@ -281,5 +288,17 @@
        {
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.FindPreciousFrameFunc3);
        }
        private void OnPlayersUpLV(PlayerDataRefresh obj)
        {
            if (obj == PlayerDataRefresh.Gold || obj == PlayerDataRefresh.GoldPaper)
            {
                GetFairyJade();
            }
        }
        private void GetFairyJade()
        {
            m_FairyJadeText.text = UIHelper.GetMoneyCnt(1).ToString();
            m_TieTheJadeText.text = UIHelper.GetMoneyCnt(2).ToString();
        }
    }
}
System/WindowJump/WindowJumpMgr.cs
@@ -278,6 +278,12 @@
                    }
                }
                break;
            case JumpUIType.VipRechargeFunc5:
                if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                {
                    return;
                }
                break;
            case JumpUIType.OpenServerRank:
            case JumpUIType.OSTimeLimitGift:
            case JumpUIType.OpenServerActivityFunc2_1:
@@ -478,7 +484,6 @@
            case JumpUIType.VipRechargeFunc1:
            case JumpUIType.VipRechargeFunc2:
            case JumpUIType.VipRechargeFunc4:
            case JumpUIType.VipRechargeFunc5:
                if (VersionConfig.Get().isBanShu)
                {
                    SysNotifyMgr.Instance.ShowTip("FuncNoOpen_VIP");
@@ -623,7 +628,16 @@
            case JumpUIType.UnionChat1:
            case JumpUIType.UnionChat2:
                ChatCtrl.Inst.presentChatType = (ChatInfoType)(int.Parse(_tagWinSearchModel.SelectActive) - 1);
                SetJumpLogic<ChatWin>(_tagWinSearchModel.TABID);
                switch (ChatCtrl.Inst.presentChatType)
                {
                    case ChatInfoType.Team:
                    case ChatInfoType.Fairy:
                        SetJumpLogic<SocialWin>(_tagWinSearchModel.TABID);
                        break;
                    default:
                        SetJumpLogic<ChatWin>(_tagWinSearchModel.TABID);
                        break;
                }
                break;
            case JumpUIType.MakeDrug:
                if (PackSendQuestMgr.Instance.useItemModel != null)
@@ -680,6 +694,7 @@
            case JumpUIType.OpenServerGift3:
            case JumpUIType.LimitedTimePackage:
            case JumpUIType.OpenServerRank:
            case JumpUIType.VipRechargeFunc5:
                SetJumpLogic<OpenServerActivityWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.OpenServerMountRank: