少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-14 0102e94422c896d8f6e4eb2d647d748a2f882b07
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

# Conflicts:
# System/BossReborn/BossRebornModel.cs
11个文件已修改
879 ■■■■ 已修改文件
System/BossReborn/BossRebornModel.cs 304 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackSendQuestMgr.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/FlashSaleModel.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactRankModel.cs 204 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OSRedEnvelopeModel.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServerActivityWin.cs 210 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/OSTimeLimitGiftModel.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/ConsumeRebateModel.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/MultipleExpModel.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/MultipleRealmPointModel.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BossReborn/BossRebornModel.cs
@@ -4,137 +4,177 @@
using System;
using TableConfig;
namespace Snxxz.UI
{
    public class BossRebornModel : Model
    {
        int m_BossRebornIntegral = 0;
        public int bossRebornIntegral {
            get { return m_BossRebornIntegral; }
            set {
                if (m_BossRebornIntegral != value)
                {
                    m_BossRebornIntegral = value;
                    if (bossRebornIntergralEvent != null)
                    {
                        bossRebornIntergralEvent();
                    }
                }
            }
        }
        int m_BossRebornInderalTotal = 0;
        public int bossRebornIndegralTotal {
            get { return m_BossRebornInderalTotal; }
            set { m_BossRebornInderalTotal = value; }
        }
        public int surplusSecond { get { return OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.BossReborn); } }
        public event Action bossRebornIntergralEvent;
        public event Action<int> bossTaskStateChangeEvent;
        Dictionary<int, BossRebornTask> bossRebornTasks = new Dictionary<int, BossRebornTask>();
        const int bossRebornPointId = 20909;
        public Redpoint bossRebornPoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, bossRebornPointId);
        public override void Init()
        {
        }
        public override void UnInit()
        {
        }
        public bool IsOpen()
        {
            return OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.BossReborn);
        }
        public void UpdateTaskBaseInfos(HAB04_tagMCBossRebornInfo.tagMCBossRebornTaskInfo[] _tasks)
        {
            foreach (var task in _tasks)
            {
                if (bossRebornTasks.ContainsKey(task.TaskID))
                {
                    bossRebornTasks[task.TaskID].UpdateActivityBaseData(task);
                }
                else
                {
                    bossRebornTasks[task.TaskID] = new BossRebornTask(task);
                }
            }
        }
        public List<BossRebornTask> GetTasks()
        {
            return new List<BossRebornTask>(bossRebornTasks.Values);
        }
        public BossRebornTask GetTaskData(int _id)
        {
            if (!bossRebornTasks.ContainsKey(_id))
            {
                bossRebornTasks[_id] = new BossRebornTask(_id);
            }
            return bossRebornTasks[_id];
        }
        public void RequestTaskReward(int _id)
        {
            var sendInfo = new CA504_tagCMPlayerGetReward();
            sendInfo.RewardType = (int)GotServerRewardType.Def_RewardType_BossReborn;
            sendInfo.DataEx = (uint)_id;
            sendInfo.DataExStrLen = 0;
            sendInfo.DataExStr = string.Empty;
            GameNetSystem.Instance.SendInfo(sendInfo);
        }
        public void UpdateTaskData(HAB03_tagMCBossRebornPlayerInfo _serverInfo)
        {
            foreach (var info in _serverInfo.DataList)
            {
                var id = info.ActID;
                var data = GetTaskData(id);
                var oldState = data.GetState();
                data.UpdateActivityData(info.CurTimes, info.GotTimes);
                var newState = data.GetState();
                if (oldState != newState && bossTaskStateChangeEvent != null)
                {
                    bossTaskStateChangeEvent(id);
                }
            }
            UpdateRedpoint();
        }
        private void UpdateRedpoint()
        {
            if (!IsOpen())
            {
                bossRebornPoint.state = RedPointState.None;
            }
            else
            {
                var rewardable = false;
                foreach (var task in bossRebornTasks.Values)
                {
                    if (task.GetState() == BossRebornTask.State.Rewardable)
                    {
                        rewardable = true;
                        break;
                    }
                }
                bossRebornPoint.state = rewardable ? RedPointState.Simple : RedPointState.None;
            }
        }
    }
namespace Snxxz.UI
{
    public class BossRebornModel : Model, IOpenServerActivity
    {
        int m_BossRebornIntegral = 0;
        public int bossRebornIntegral {
            get { return m_BossRebornIntegral; }
            set {
                if (m_BossRebornIntegral != value)
                {
                    m_BossRebornIntegral = value;
                    if (bossRebornIntergralEvent != null)
                    {
                        bossRebornIntergralEvent();
                    }
                }
            }
        }
        int m_BossRebornInderalTotal = 0;
        public int bossRebornIndegralTotal {
            get { return m_BossRebornInderalTotal; }
            set { m_BossRebornInderalTotal = value; }
        }
        public int surplusSecond { get { return OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.BossReborn); } }
        public bool priorityOpen
        {
            get
            {
                return bossRebornPoint.state == RedPointState.Simple;
            }
        }
        public event Action bossRebornIntergralEvent;
        public event Action<int> bossTaskStateChangeEvent;
        public event Action<int> onStateUpate;
        Dictionary<int, BossRebornTask> bossRebornTasks = new Dictionary<int, BossRebornTask>();
        const int bossRebornPointId = 20909;
        public Redpoint bossRebornPoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, bossRebornPointId);
        public override void Init()
        {
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
            OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
            OpenServerActivityCenter.Instance.Register(9, this);
        }
        public override void UnInit()
        {
            OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
            OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent;
        }
        private void OperationEndEvent(Operation type, int state)
        {
            if (type == Operation.BossReborn&&state==0)
            {
                if (onStateUpate != null)
                {
                    onStateUpate(9);
                }
            }
        }
        private void OperationStartEvent(Operation type, int state)
        {
            if (type == Operation.BossReborn && state == 0)
            {
                if (onStateUpate != null)
                {
                    onStateUpate(9);
                }
            }
        }
        public bool IsOpen
        {
            get
            {
                return OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.BossReborn);
            }
        }
        public void UpdateTaskBaseInfos(HAB04_tagMCBossRebornInfo.tagMCBossRebornTaskInfo[] _tasks)
        {
            foreach (var task in _tasks)
            {
                if (bossRebornTasks.ContainsKey(task.TaskID))
                {
                    bossRebornTasks[task.TaskID].UpdateActivityBaseData(task);
                }
                else
                {
                    bossRebornTasks[task.TaskID] = new BossRebornTask(task);
                }
            }
        }
        public List<BossRebornTask> GetTasks()
        {
            return new List<BossRebornTask>(bossRebornTasks.Values);
        }
        public BossRebornTask GetTaskData(int _id)
        {
            if (!bossRebornTasks.ContainsKey(_id))
            {
                bossRebornTasks[_id] = new BossRebornTask(_id);
            }
            return bossRebornTasks[_id];
        }
        public void RequestTaskReward(int _id)
        {
            var sendInfo = new CA504_tagCMPlayerGetReward();
            sendInfo.RewardType = (int)GotServerRewardType.Def_RewardType_BossReborn;
            sendInfo.DataEx = (uint)_id;
            sendInfo.DataExStrLen = 0;
            sendInfo.DataExStr = string.Empty;
            GameNetSystem.Instance.SendInfo(sendInfo);
        }
        public void UpdateTaskData(HAB03_tagMCBossRebornPlayerInfo _serverInfo)
        {
            foreach (var info in _serverInfo.DataList)
            {
                var id = info.ActID;
                var data = GetTaskData(id);
                var oldState = data.GetState();
                data.UpdateActivityData(info.CurTimes, info.GotTimes);
                var newState = data.GetState();
                if (oldState != newState && bossTaskStateChangeEvent != null)
                {
                    bossTaskStateChangeEvent(id);
                }
            }
            UpdateRedpoint();
        }
        private void UpdateRedpoint()
        {
            if (!IsOpen)
            {
                bossRebornPoint.state = RedPointState.None;
            }
            else
            {
                var rewardable = false;
                foreach (var task in bossRebornTasks.Values)
                {
                    if (task.GetState() == BossRebornTask.State.Rewardable)
                    {
                        rewardable = true;
                        break;
                    }
                }
                bossRebornPoint.state = rewardable ? RedPointState.Simple : RedPointState.None;
            }
        }
    }
}
System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -111,7 +111,7 @@
            if (sendItemModel == null) return;
            sendItemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(sendItemModel.itemInfo.ItemID);
            if(sendItemConfig.JobLimit / 100 != PlayerDatas.Instance.baseData.Job)
            if(sendItemConfig.JobLimit != 0 && sendItemConfig.JobLimit / 100 != PlayerDatas.Instance.baseData.Job)
            {
                SysNotifyMgr.Instance.ShowTip("GeRen_lhs_31379");
                return;
System/OpenServerActivity/FlashSaleModel.cs
@@ -4,7 +4,7 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class FlashSaleModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    public class FlashSaleModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
        public override void Init()
@@ -12,6 +12,7 @@
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
            OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
            TimeMgr.Instance.OnDayEvent += OnDayEvent;
            OpenServerActivityCenter.Instance.Register(4, this);
        }
        public void OnBeforePlayerDataInitialize()
@@ -35,6 +36,10 @@
            if (type == Operation.FlashSale && state == 0)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
                {
                    onStateUpate(4);
                }
            }
        }
@@ -43,6 +48,10 @@
            if (type == Operation.FlashSale && state == 0)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
                {
                    onStateUpate(4);
                }
            }
        }
@@ -77,6 +86,14 @@
                OperationBase operationBase;
                OperationTimeHepler.Instance.TryGetOperationTime(Operation.FlashSale, out operationBase);
                return operationBase != null && operationBase.SatisfyOpenCondition() && operationBase.InAdvanceTime(TimeUtility.ServerNow);
            }
        }
        public bool priorityOpen
        {
            get
            {
                return flashSaleRedpoint.state == RedPointState.Simple;
            }
        }
@@ -185,6 +202,9 @@
        }
        public Redpoint flashSaleRedpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20904);
        public event Action<int> onStateUpate;
        private void UpdateRedpoint()
        {
            flashSaleRedpoint.state = RedPointState.None;
System/OpenServerActivity/ImpactRankModel.cs
@@ -7,7 +7,7 @@
namespace Snxxz.UI
{
    public class ImpactRankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    public class ImpactRankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        public override void Init()
        {
@@ -15,6 +15,7 @@
            PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRank;
            TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            OpenServerActivityCenter.Instance.Register(0, this);
        }
        public override void UnInit()
@@ -49,6 +50,10 @@
            if (_id == 125)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
                {
                    onStateUpate(0);
                }
            }
        }
@@ -416,6 +421,8 @@
        #region 协议
        public event Action OnAwardGetEvent;
        public event Action<int> onStateUpate;
        private Dictionary<int, OpenServerPlayerData> impactAwardGetDict = new Dictionary<int, OpenServerPlayerData>();
        public void UpdateGetState(HAB17_tagMCOpenServerCampaignAwardList _package)
        {
@@ -619,98 +626,51 @@
        #region 主界面特效
        public bool OSCEffectOpen { get; set; }
        public bool IsOpen
        {
            get
            {
                return TimeUtility.OpenDay < openServerActivityDays && FuncOpen.Instance.IsFuncOpen(125);
            }
        }
        public bool priorityOpen
        {
            get
            {
                var state = impactRankRedpoint.state;
                return state == RedPointState.Simple || state == RedPointState.GetReward;
            }
        }
        #endregion
    }
    public class OpenServerActivityCenter : Singleton<OpenServerActivityCenter>
    {
        ImpactRankModel impactRankModel { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } }
        OSRedEnvelopeModel envelopeModel { get { return ModelCenter.Instance.GetModel<OSRedEnvelopeModel>(); } }
        OSTimeLimitGiftModel timeLimitGiftModel { get { return ModelCenter.Instance.GetModel<OSTimeLimitGiftModel>(); } }
        FlashSaleModel flashSaleModel { get { return ModelCenter.Instance.GetModel<FlashSaleModel>(); } }
        ConsumeRebateModel consumeRebateModel { get { return ModelCenter.Instance.GetModel<ConsumeRebateModel>(); } }
        MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
        BossRebornModel bossRebornModel { get { return ModelCenter.Instance.GetModel<BossRebornModel>(); } }
        MultipleRealmPointModel multipleRealmModel { get { return ModelCenter.Instance.GetModel<MultipleRealmPointModel>(); } }
        public event Action openServerActivityStateChange;
        Dictionary<int, IOpenServerActivity> openServerActivitys = new Dictionary<int, IOpenServerActivity>();
        public OpenServerActivityCenter()
        {
            TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
            OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
            OperationTimeHepler.Instance.operationAdvanceEvent += OperationAdvanceEvent;
        }
        private void OperationAdvanceEvent(Operation type)
        public void Register(int funcOrder, IOpenServerActivity activity)
        {
            if (type == Operation.FlashSale)
            if (!openServerActivitys.ContainsKey(funcOrder))
            {
                if (openServerActivityStateChange != null)
                {
                    openServerActivityStateChange();
                }
                openServerActivitys.Add(funcOrder, activity);
                activity.onStateUpate += OnStateUpate;
            }
        }
        private void OperationEndEvent(Operation type, int state)
        private void OnStateUpate(int _order)
        {
            if ((type == Operation.FlashSale || type == Operation.BossReborn
                || type == Operation.ConsumeRebate || type == Operation.GiftPackage
                || type == Operation.MultipRealmPoint)
                && state == 0)
            if (openServerActivityStateChange != null)
            {
                if (openServerActivityStateChange != null)
                {
                    openServerActivityStateChange();
                }
            }
            if ((type == Operation.MultipleExp)
                && state == 1)
            {
                if (openServerActivityStateChange != null)
                {
                    openServerActivityStateChange();
                }
            }
        }
        private void OperationStartEvent(Operation type, int state)
        {
            if ((type == Operation.FlashSale || type == Operation.BossReborn
                || type == Operation.ConsumeRebate || type == Operation.GiftPackage
                || type == Operation.MultipRealmPoint)
                && state == 0)
            {
                if (openServerActivityStateChange != null)
                {
                    openServerActivityStateChange();
                }
            }
            if ((type == Operation.MultipleExp)
                && state == 1)
            {
                if (openServerActivityStateChange != null)
                {
                    openServerActivityStateChange();
                }
            }
        }
        private void OnFuncStateChangeEvent(int _id)
        {
            if (_id == 125 || _id == (int)FuncOpenEnum.OpenServerRedEnvelope
                || _id == 132)
            {
                if (openServerActivityStateChange != null)
                {
                    openServerActivityStateChange();
                }
                openServerActivityStateChange();
            }
        }
@@ -725,95 +685,47 @@
        public bool IsAnyActivityOpen(out int _functionOrder)
        {
            _functionOrder = 0;
            if (IsImpactRankOpen())
            foreach (var _order in openServerActivitys.Keys)
            {
                _functionOrder = 0;
                return true;
            }
            if (IsConsumeRebateOpen())
            {
                _functionOrder = 1;
                return true;
            }
            if (IsRedEnvelopeOpen())
            {
                _functionOrder = 2;
                return true;
            }
            if (IsTimeLimitGiftOpen())
            {
                _functionOrder = 3;
                return true;
            }
            if (IsFlashSaleOpen())
            {
                _functionOrder = 4;
                return true;
            }
            if (IsMultipleExpOpen())
            {
                _functionOrder = 5;
                return true;
            }
            if (IsMultipleRealmOpen())
            {
                _functionOrder = 8;
                return true;
            }
            if (IsBossRebornOpen())
            {
                _functionOrder = 9;
                return true;
                if (openServerActivitys[_order].IsOpen)
                {
                    _functionOrder = _order;
                    return true;
                }
            }
            return false;
        }
        public bool IsImpactRankOpen()
        public bool IsActivityOpen(int _funcOrder)
        {
            return TimeUtility.OpenDay < impactRankModel.openServerActivityDays && FuncOpen.Instance.IsFuncOpen(125);
            if (openServerActivitys.ContainsKey(_funcOrder))
            {
                return openServerActivitys[_funcOrder].IsOpen;
            }
            return false;
        }
        public bool IsRedEnvelopeOpen()
        public bool IsPriorityOpenOpen(int _funcOrder)
        {
            return TimeUtility.OpenDay < envelopeModel.openDays && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.OpenServerRedEnvelope);
        }
        public bool IsTimeLimitGiftOpen()
        {
            return TimeUtility.CreateDays <= timeLimitGiftModel.openDays && FuncOpen.Instance.IsFuncOpen(132);
        }
        public bool IsFlashSaleOpen()
        {
            return flashSaleModel.IsOpen || flashSaleModel.InAdvanceOpen;
        }
        public bool IsConsumeRebateOpen()
        {
            return consumeRebateModel.IsOpen;
        }
        public bool IsMultipleExpOpen()
        {
            return multipleExpModel.Open();
        }
        public bool IsMultipleRealmOpen()
        {
            return multipleRealmModel.IsOpen;
            if (openServerActivitys.ContainsKey(_funcOrder))
            {
                return openServerActivitys[_funcOrder].priorityOpen;
            }
            return false;
        }
        public void ProcessErrorTip()
        {
            SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
        }
    }
        public bool IsBossRebornOpen()
        {
            return bossRebornModel.IsOpen();
        }
    public interface IOpenServerActivity
    {
        bool IsOpen { get; }
        bool priorityOpen { get; }
        event Action<int> onStateUpate;
    }
}
System/OpenServerActivity/OSRedEnvelopeModel.cs
@@ -5,7 +5,7 @@
using TableConfig;
namespace Snxxz.UI
{
    public class OSRedEnvelopeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    public class OSRedEnvelopeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        AchievementModel m_AchievementModel;
        AchievementModel achieveModel
@@ -37,6 +37,7 @@
            envelopeModel.EnvelopeUpdateEvent += EnvelopeUpdateEvent;
            envelopeModel.EnvelopeDelEvent += EnvelopeUpdateEvent;
            envelopeModel.EnvelopeGetEvent += EnvelopeGetEvent;
            OpenServerActivityCenter.Instance.Register(2, this);
        }
        public override void UnInit()
@@ -62,6 +63,10 @@
                if (OSRedEnvelopeUpdateEvent != null)
                {
                    OSRedEnvelopeUpdateEvent();
                }
                if (onStateUpate != null)
                {
                    onStateUpate(2);
                }
            }
        }
@@ -407,7 +412,26 @@
        public int totalJadeGet { get; private set; }
        public int getEnvelopeTimes { get; private set; }
        public bool IsOpen
        {
            get
            {
                return TimeUtility.OpenDay < openDays && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.OpenServerRedEnvelope);
            }
        }
        public bool priorityOpen
        {
            get
            {
                return m_RedAchieveRedpoint.state == RedPointState.Simple
                    || m_OpenServerGetRedpin.state == RedPointState.Simple;
            }
        }
        public event Action OSRedEnvelopeInfoEnvent;
        public event Action<int> onStateUpate;
        public void UpdateOSRedEnvelope(HAB24_tagMCOpenServerRedPacketInfo _pak)
        {
            totalJadeGet = (int)_pak.MoneyNum;
System/OpenServerActivity/OpenServerActivityWin.cs
@@ -30,24 +30,8 @@
            }
        }
        OSTimeLimitGiftModel m_OSTimeLimitGiftModel;
        OSTimeLimitGiftModel timeLimitGiftModel {
            get {
                return m_OSTimeLimitGiftModel ?? (m_OSTimeLimitGiftModel = ModelCenter.Instance.GetModel<OSTimeLimitGiftModel>());
            }
        }
        FlashSaleModel flashSaleModel { get { return ModelCenter.Instance.GetModel<FlashSaleModel>(); } }
        ConsumeRebateModel consumeRebateModel { get { return ModelCenter.Instance.GetModel<ConsumeRebateModel>(); } }
        MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
        MultipleRealmPointModel multipleRealmPointModel { get { return ModelCenter.Instance.GetModel<MultipleRealmPointModel>(); } }
        BossRebornModel bossRebornModel { get { return ModelCenter.Instance.GetModel<BossRebornModel>(); } }
        List<int> openActivitys = new List<int>();
        List<int> activityReds = new List<int>();
        List<int> priorityActivitys = new List<int>();
        List<int> alreadyOpenActivitys = new List<int>();
        protected override void BindController()
@@ -66,8 +50,7 @@
        {
            TimeUtility.OnServerOpenDayRefresh += OnStepServerDayEvent;
            OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
            OperationTimeHepler.Instance.operationAdvanceEvent += OperationAdvanceEvent;
            OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange;
            for (int i = 0; i < m_SortArray.Count; i++)
            {
                m_ActivitySpreadDict[m_SortArray[i]] = false;
@@ -119,8 +102,7 @@
        {
            TimeUtility.OnServerOpenDayRefresh -= OnStepServerDayEvent;
            OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
            OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
            OperationTimeHepler.Instance.operationAdvanceEvent -= OperationAdvanceEvent;
            OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange;
            CloseOtherWin();
            WindowCenter.Instance.Open<MainInterfaceWin>();
            impactRankModel.gotoImpactRankType = 0;
@@ -134,82 +116,30 @@
        int GetDefaultSelect()
        {
            openActivitys.Clear();
            activityReds.Clear();
            if (OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
            {
                openActivitys.Add(3);
                if (timeLimitGiftModel.redpoint.state == RedPointState.Simple)
                {
                    activityReds.Add(3);
                }
            }
            if (OpenServerActivityCenter.Instance.IsFlashSaleOpen())
            {
                openActivitys.Add(4);
                if (flashSaleModel.flashSaleRedpoint.state == RedPointState.Simple)
                {
                    activityReds.Add(4);
                }
            }
            if (OpenServerActivityCenter.Instance.IsImpactRankOpen())
            {
                openActivitys.Add(0);
                if (impactRankModel.HasRedpoint())
                {
                    activityReds.Add(0);
                }
            }
            if (OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
            {
                openActivitys.Add(2);
                if (envelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple)
                {
                    activityReds.Add(2);
                    envelopeModel.selectType = 1;
                }
                else if (envelopeModel.m_OpenServerGetRedpin.state == RedPointState.Simple)
                {
                    activityReds.Add(2);
                    envelopeModel.selectType = 2;
                }
            }
            if (OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
            {
                openActivitys.Add(1);
                if (consumeRebateModel.consumeRebateRedpoint.state == RedPointState.Simple)
                {
                    activityReds.Add(1);
                }
            }
            if (OpenServerActivityCenter.Instance.IsBossRebornOpen())
            {
                openActivitys.Add(9);
                if (bossRebornModel.bossRebornPoint.state == RedPointState.Simple)
                {
                    activityReds.Add(9);
                }
            }
            priorityActivitys.Clear();
            if (OpenServerActivityCenter.Instance.IsMultipleExpOpen())
            for (int i = 0; i < m_SortArray.Count; i++)
            {
                openActivitys.Add(5);
                if (multipleExpModel.multipleExpRedpoint.state == RedPointState.Simple)
                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i]))
                {
                    activityReds.Add(5);
                    openActivitys.Add(m_SortArray[i]);
                    if (OpenServerActivityCenter.Instance.IsPriorityOpenOpen(m_SortArray[i]))
                    {
                        priorityActivitys.Add(m_SortArray[i]);
                        switch (m_SortArray[i])
                        {
                            case 2:
                                envelopeModel.selectType = envelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple ? 1 : 2;
                                break;
                        }
                    }
                }
            }
            if (OpenServerActivityCenter.Instance.IsMultipleRealmOpen())
            if (priorityActivitys.Count > 0)
            {
                openActivitys.Add(8);
                if (multipleRealmPointModel.multipleRed.state == RedPointState.Simple)
                {
                    activityReds.Add(8);
                }
            }
            if (activityReds.Count > 0)
            {
                activityReds.Sort(Compare);
                return activityReds[0];
                priorityActivitys.Sort(Compare);
                return priorityActivitys[0];
            }
            else
            {
@@ -221,38 +151,12 @@
        void CheckAlreadyOpen()
        {
            alreadyOpenActivitys.Clear();
            if (OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
            for (int i = 0; i < m_SortArray.Count; i++)
            {
                alreadyOpenActivitys.Add(3);
            }
            if (OpenServerActivityCenter.Instance.IsFlashSaleOpen())
            {
                alreadyOpenActivitys.Add(4);
            }
            if (OpenServerActivityCenter.Instance.IsImpactRankOpen())
            {
                alreadyOpenActivitys.Add(0);
            }
            if (OpenServerActivityCenter.Instance.IsRedEnvelopeOpen())
            {
                alreadyOpenActivitys.Add(2);
            }
            if (OpenServerActivityCenter.Instance.IsConsumeRebateOpen())
            {
                alreadyOpenActivitys.Add(1);
            }
            if (OpenServerActivityCenter.Instance.IsMultipleExpOpen())
            {
                alreadyOpenActivitys.Add(5);
            }
            if (OpenServerActivityCenter.Instance.IsMultipleRealmOpen())
            {
                alreadyOpenActivitys.Add(8);
            }
            if (OpenServerActivityCenter.Instance.IsBossRebornOpen())
            {
                alreadyOpenActivitys.Add(9);
                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i]))
                {
                    alreadyOpenActivitys.Add(m_SortArray[i]);
                }
            }
        }
@@ -548,66 +452,28 @@
        private void OperationTimeUpdateEvent(Operation type)
        {
            if (type == Operation.MultipleExp)
            if (type == Operation.MultipleExp || type == Operation.MultipRealmPoint)
            {
                m_ActivityCtrl.m_Scorller.RefreshActiveCellViews();
            }
        }
        private void OperationStartEvent(Operation type, int state)
        private void OpenServerActivityStateChange()
        {
            switch (type)
            bool _update = false;
            for (int i = 0; i < m_SortArray.Count; i++)
            {
                case Operation.MultipleExp:
                    if (state == 1 && !alreadyOpenActivitys.Contains(5))
                    {
                        alreadyOpenActivitys.Add(5);
                        UpdateFunctionBtns();
                    }
                    break;
                case Operation.ConsumeRebate:
                    if (state == 0 && !alreadyOpenActivitys.Contains(1))
                    {
                        alreadyOpenActivitys.Add(1);
                        UpdateFunctionBtns();
                    }
                    break;
                case Operation.FlashSale:
                    if (state == 0 && !alreadyOpenActivitys.Contains(4))
                    {
                        alreadyOpenActivitys.Add(4);
                        UpdateFunctionBtns();
                    }
                    break;
                case Operation.BossReborn:
                    if (state == 0 && !alreadyOpenActivitys.Contains(9))
                    {
                        alreadyOpenActivitys.Add(9);
                        UpdateFunctionBtns();
                    }
                    break;
                case Operation.GiftPackage:
                    break;
                case Operation.MultipRealmPoint:
                    if (state == 0 && !alreadyOpenActivitys.Contains(8))
                    {
                        alreadyOpenActivitys.Add(8);
                        UpdateFunctionBtns();
                    }
                    break;
            }
        }
        private void OperationAdvanceEvent(Operation type)
        {
            if (type == Operation.FlashSale)
            {
                if (!alreadyOpenActivitys.Contains(4))
                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i])
                    && !alreadyOpenActivitys.Contains(m_SortArray[i]))
                {
                    alreadyOpenActivitys.Add(4);
                    UpdateFunctionBtns();
                    alreadyOpenActivitys.Add(m_SortArray[i]);
                    _update = true;
                }
            }
            if (_update)
            {
                UpdateFunctionBtns();
            }
        }
    }
}
System/Vip/OSTimeLimitGiftModel.cs
@@ -5,7 +5,7 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class OSTimeLimitGiftModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    public class OSTimeLimitGiftModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        Dictionary<int, List<StoreConfig>> m_OSTimeLimitGifts = new Dictionary<int, List<StoreConfig>>();
@@ -16,11 +16,30 @@
        public Redpoint redpoint { get; private set; }
        StoreModel m_StoreModel;
        public event Action<int> onStateUpate;
        StoreModel storeModel
        {
            get
            {
                return m_StoreModel ?? (m_StoreModel = ModelCenter.Instance.GetModel<StoreModel>());
            }
        }
        public bool IsOpen
        {
            get
            {
                return TimeUtility.CreateDays <= openDays && FuncOpen.Instance.IsFuncOpen(132);
            }
        }
        public bool priorityOpen
        {
            get
            {
                return redpoint.state == RedPointState.Simple;
            }
        }
@@ -50,6 +69,7 @@
            TimeUtility.OnCreateRoleTimeRefresh += OnCreateRoleTimeRefresh;
            storeModel.RefreshBuyShopLimitEvent += UpdateRedpoint;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            OpenServerActivityCenter.Instance.Register(3, this);
        }
        public override void UnInit()
@@ -85,6 +105,10 @@
            if (_id == 132)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
                {
                    onStateUpate(3);
                }
            }
        }
System/Welfare/ConsumeRebateModel.cs
@@ -4,15 +4,18 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class ConsumeRebateModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    public class ConsumeRebateModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        public event Action consumeRebateUpdateEvent;
        public event Action<int> onStateUpate;
        public override void Init()
        {
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
            OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
            GlobalTimeEvent.Instance.secondEvent += SecondEvent;
            OpenServerActivityCenter.Instance.Register(1, this);
        }
        public void OnBeforePlayerDataInitialize()
@@ -49,6 +52,14 @@
        public int costTotal { get; private set; }
        private uint consumeGotRecord { get; set; }
        public bool priorityOpen
        {
            get
            {
                return consumeRebateRedpoint.state == RedPointState.Simple;
            }
        }
        int rebateOpenDayIndex = -1;
@@ -93,6 +104,10 @@
            if (type == Operation.ConsumeRebate && state == 0)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
                {
                    onStateUpate(1);
                }
            }
        }
@@ -101,6 +116,10 @@
            if (type == Operation.ConsumeRebate && state == 0)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
                {
                    onStateUpate(1);
                }
            }
        }
System/Welfare/MultipleExpModel.cs
@@ -4,17 +4,18 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class MultipleExpModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    public class MultipleExpModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        private bool showTip = false;
        private bool todayRemind = false;
        public override void Init()
        {
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
            OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
            OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
            WindowCenter.Instance.windowAfterOpenEvent += WindowAfterOpenEvent;
            StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
            OpenServerActivityCenter.Instance.Register(5, this);
        }
        private void OnStageLoadFinish()
@@ -70,6 +71,7 @@
        public override void UnInit()
        {
            OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
            OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent;
            OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
            WindowCenter.Instance.windowAfterOpenEvent -= WindowAfterOpenEvent;
        }
@@ -79,6 +81,22 @@
            if (type == Operation.MultipleExp && state == 1)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
                {
                    onStateUpate(5);
                }
            }
        }
        private void OperationEndEvent(Operation type, int state)
        {
            if (type == Operation.MultipleExp && state == 1)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
                {
                    onStateUpate(5);
                }
            }
        }
@@ -92,6 +110,24 @@
        public Redpoint multipleExpRedpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20905);
        public event Action<int> onStateUpate;
        public bool IsOpen
        {
            get
            {
                return Open();
            }
        }
        public bool priorityOpen
        {
            get
            {
                return multipleExpRedpoint.state == RedPointState.Simple;
            }
        }
        public void SetDayRemind()
        {
            if (multipleExpRedpoint.state == RedPointState.Simple)
System/Welfare/MultipleRealmPointModel.cs
@@ -3,13 +3,17 @@
namespace Snxxz.UI
{
    public class MultipleRealmPointModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    public class MultipleRealmPointModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        public Redpoint multipleRed = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20908);
        public string LocalRecord_Key = "MultipleRealmRecord";
        bool isNewDay = false;
        public event Action<int> onStateUpate;
        public override void Init()
        {
            OpenServerActivityCenter.Instance.Register(8, this);
          
        }
@@ -50,16 +54,32 @@
            }
        }
        public bool priorityOpen
        {
            get
            {
                return multipleRed.state == RedPointState.Simple;
            }
        }
        private void RefreshOperationClose(Operation type)
        {
            if (type != Operation.MultipRealmPoint) return;
            CheckShowRed();
            if (onStateUpate != null)
            {
                onStateUpate(8);
            }
        }
        private void RefreshOperationState(Operation type, int arg2)
        {
            if (type != Operation.MultipRealmPoint) return;
            CheckShowRed();
            if (onStateUpate != null)
            {
                onStateUpate(8);
            }
        }
        public void CheckShowRed(bool isClick = false)
System/WindowJump/WindowJumpMgr.cs
@@ -258,7 +258,7 @@
                break;
            case JumpUIType.OSTimeLimitGift:
                if (!OpenServerActivityCenter.Instance.IsTimeLimitGiftOpen())
                if (!OpenServerActivityCenter.Instance.IsActivityOpen(3))
                {
                    SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
                    return;