少年修仙传客户端代码仓库
client_linchunjie
2018-09-14 a0ede150686a218c92b901b1f20aef12a9913890
System/SystemSetting/SetPrivateModel.cs
@@ -28,7 +28,7 @@
            hangUpPushlist.Add((int)PushNotifyType.PrivateChat);
            hangUpPushlist.Add((int)PushNotifyType.TJDead);
            hangUpPushlist.Add((int)PushNotifyType.TJWGTimeNoEnough);
        }
        public void OnBeforePlayerDataInitialize()
@@ -54,7 +54,7 @@
        public override void UnInit()
        {
        }
        public void SetActivityPushKey()
@@ -73,13 +73,17 @@
        {
            DailyQuestOpenTime dailyQuestOpenTime;
            dailyModel.TryGetOpenTime(dailyId, out dailyQuestOpenTime);
            foreach (var weekday in dailyQuestOpenTime.openTimes.Keys)
            for (int weekDay = 0; weekDay < 7; weekDay++)
            {
                List<HourMinute> hourMinutelist = dailyQuestOpenTime.openTimes[weekday];
                for (int i = 0; i < hourMinutelist.Count; i++)
                var hourMinutelist = dailyQuestOpenTime.GetHourMinuteByWeek(weekDay);
                if (hourMinutelist != null)
                {
                    string key = StringUtility.Contact(dailyId,weekday,hourMinutelist[i].hourBegin);
                    keylist.Add(key);
                    for (int j = 0; j < hourMinutelist.Count; j++)
                    {
                        var key = StringUtility.Contact(dailyId, weekDay, hourMinutelist[j].hourBegin);
                        keylist.Add(key);
                    }
                }
            }
        }
@@ -98,7 +102,6 @@
            for (int i = 0; i < switchBtnLength; i++)
            {
                bool isOpen = MathUtility.GetBitValue(setting.OnoffBit, (ushort)i);
                DebugEx.Log("SetServerPushModel:" + i + "bool:" + isOpen);
                pushSetDict.Add(i, isOpen);
            }
            AnalysisFreeTime(setting.TimeStr);
@@ -164,9 +167,17 @@
            }
        }
        public void RemoveActivityPushByKey(int dailyId, string pushKey)
        {
            if (pushAtcivityKeyDict[dailyId].Contains(pushKey))
            {
                SDKUtility.Instance.GeTui_RemoveLocalMessage(pushKey);
            }
        }
        public void AddActivityPush(int dailyId)
        {
            var config = ConfigManager.Instance.GetTemplate<DailyQuestConfig>(dailyId);
            var config = Config.Instance.Get<DailyQuestConfig>(dailyId);
            if (config == null || !FuncOpen.Instance.IsFuncOpen(config.UnLockFuncID)) return;
            List<JsonData> pushNotifylist = GetPushJsonData(dailyId);
@@ -176,16 +187,17 @@
            }
        }
        public List<JsonData> GetPushJsonData(int dailyId)
        {
            var config = ConfigManager.Instance.GetTemplate<DailyQuestConfig>(dailyId);
            var config = Config.Instance.Get<DailyQuestConfig>(dailyId);
            string content = Language.Get("SetUpPrivate102", UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName).TrimEnd(), config.Title);
            List<JsonData> pushNotifylist = new List<JsonData>();
            List<string> pushKeylist = null;
            List<int> pushNotifyTimelist = GetPushNotifyTime(dailyId,out pushKeylist);
            List<int> pushNotifyTimelist = GetPushNotifyTime(dailyId, out pushKeylist);
            for (int i = 0; i < pushNotifyTimelist.Count; i++)
            {
                if(i < pushKeylist.Count)
                if (i < pushKeylist.Count)
                {
                    JsonData _params = new JsonData();
                    _params["code"] = 2005;
@@ -194,7 +206,6 @@
                    _params["subtitle"] = "";// 副标题
                    _params["content"] = content;// 具体内容
                    _params["badge"] = -1;// 角标
                    // 以下为决定应该多久后弹出此通知
                    System.TimeSpan ts = System.DateTime.UtcNow - new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
                    long ret = System.Convert.ToInt64(ts.TotalSeconds) + pushNotifyTimelist[i];// 表示3秒后
@@ -206,46 +217,52 @@
            return pushNotifylist;
        }
        private List<int> GetPushNotifyTime(int dailyId,out List<string> pushKey)
        private List<int> GetPushNotifyTime(int dailyId, out List<string> pushKey)
        {
            List<int> pushDelaySecond = new List<int>();
            pushKey = new List<string>();
            DailyQuestOpenTime dailyQuestOpenTime;
            dailyModel.TryGetOpenTime(dailyId, out dailyQuestOpenTime);
            foreach (var weekday in dailyQuestOpenTime.openTimes.Keys)
            for (int weekDay = 0; weekDay < 7; weekDay++)
            {
                int day = weekday > 0 ? weekday : 7;
                int curDay = (int)TimeUtility.ServerNow.DayOfWeek > 0 ? (int)TimeUtility.ServerNow.DayOfWeek : 7;
                List <HourMinute> hourMinutelist = dailyQuestOpenTime.openTimes[weekday];
                int remainDay = day - curDay;
                if (remainDay < 0)
                var hourMinutelist = dailyQuestOpenTime.GetHourMinuteByWeek(weekDay);
                if (hourMinutelist != null)
                {
                    remainDay = 7 + remainDay;
                }
                for (int i = 0; i < hourMinutelist.Count; i++)
                {
                    int remainHour = hourMinutelist[i].hourBegin - TimeUtility.ServerNow.Hour;
                    int remainMinute = hourMinutelist[i].minuteBegin - TimeUtility.ServerNow.Minute;
                    if(remainDay <= 0)
                    int day = weekDay > 0 ? weekDay : 7;
                    int curDay = (int)TimeUtility.ServerNow.DayOfWeek > 0 ? (int)TimeUtility.ServerNow.DayOfWeek : 7;
                    int remainDay = day - curDay;
                    if (remainDay < 0)
                    {
                        if (remainHour < 0)
                        remainDay = 7 + remainDay;
                    }
                    for (int i = 0; i < hourMinutelist.Count; i++)
                    {
                        int remainHour = hourMinutelist[i].hourBegin - TimeUtility.ServerNow.Hour;
                        int remainMinute = hourMinutelist[i].minuteBegin - TimeUtility.ServerNow.Minute;
                        if (remainDay <= 0)
                        {
                            remainDay = 7;
                            if (remainHour < 0)
                            {
                                remainDay = 7;
                            }
                            else if (remainHour == 0 && remainMinute < 0)
                            {
                                remainDay = 7;
                            }
                        }
                        else if (remainHour == 0 && remainMinute < 0)
                        int remainSecond = remainDay * 24 * 60 * 60 + remainHour * 60 * 60 + remainMinute * 60;
                        if (remainSecond > 120)
                        {
                            remainDay = 7;
                            string key = StringUtility.Contact(dailyId, weekDay, hourMinutelist[i].hourBegin);
                            pushKey.Add(key);
                            pushDelaySecond.Add(remainSecond);
                        }
                    }
                    int remainSecond = remainDay * 24 * 60 * 60 + remainHour * 60 * 60 + remainMinute * 60;
                    if (remainSecond > 120)
                    {
                        string key = StringUtility.Contact(dailyId,weekday,hourMinutelist[i].hourBegin);
                        pushKey.Add(key);
                        pushDelaySecond.Add(remainSecond);
                    }
                }
            }
            return pushDelaySecond;
        }
@@ -288,7 +305,7 @@
                }
            }
            int pushSet = Convert.ToInt32(pushSB.ToString(),2);
            int pushSet = Convert.ToInt32(pushSB.ToString(), 2);
            SendPushNotifyQuest(pushSet);
        }
@@ -300,12 +317,12 @@
            {
                if (i < hangUpPushlist.Count)
                {
                    if (vipLv > 0
                    if (vipLv > 0
                        && !vipModel.IsVipExperience())
                    {
                        pushSetDict[indexlist[i]] = true;
                    }
                    else if(vipLv < 1
                    else if (vipLv < 1
                        && !vipModel.IsVipExperience())
                    {
                        pushSetDict[indexlist[i]] = false;
@@ -340,7 +357,7 @@
                    {
                        pushSetDict[indexlist[i]] = true;
                    }
                    else if(!vipModel.IsVipExperience()
                    else if (!vipModel.IsVipExperience()
                        && PlayerDatas.Instance.baseData.VIPLv < 1)
                    {
                        pushSetDict[indexlist[i]] = false;
@@ -358,7 +375,7 @@
            }
            int pushSet = Convert.ToInt32(pushSB.ToString(), 2);
            SendPushNotifyQuest(pushSet);
            LocalSave.SetBool(VIPEXPERIENCERECORD,vipModel.IsVipExperience());
            LocalSave.SetBool(VIPEXPERIENCERECORD, vipModel.IsVipExperience());
        }
        public void RefreshPushSet(int switchIndex, bool isOpen)
@@ -393,8 +410,8 @@
            {
                DailyQuestOpenTime dailyQuestOpenTime;
                dailyModel.TryGetOpenTime(quests[i], out dailyQuestOpenTime);
                var config = ConfigManager.Instance.GetTemplate<DailyQuestConfig>(quests[i]);
                if(isFunclimit)
                var config = Config.Instance.Get<DailyQuestConfig>(quests[i]);
                if (isFunclimit)
                {
                    if (dailyQuestOpenTime.IsValidServerOpenTime() && FuncOpen.Instance.IsFuncOpen(config.UnLockFuncID))
                    {
@@ -424,17 +441,21 @@
        public void GetDailyInfoById(int id, out string title, out string week, out string time)
        {
            var config = ConfigManager.Instance.GetTemplate<DailyQuestConfig>(id);
            var config = Config.Instance.Get<DailyQuestConfig>(id);
            DailyQuestOpenTime dailyQuestOpenTime;
            dailyModel.TryGetOpenTime(id, out dailyQuestOpenTime);
            week = dailyQuestOpenTime.ToOpenTimeString();
            title = config.Title;
            time = "";
            foreach (var weekday in dailyQuestOpenTime.openTimes.Keys)
            for (int i = 0; i < 7; i++)
            {
                List<HourMinute> hourMinutelist = dailyQuestOpenTime.openTimes[weekday];
                time = StringUtility.Contact(hourMinutelist[0].hourBegin > 9 ? hourMinutelist[0].hourBegin.ToString() : "0" + hourMinutelist[0].hourBegin, ":", hourMinutelist[0].minuteBegin > 9 ? hourMinutelist[0].minuteBegin.ToString() : "0" + hourMinutelist[0].minuteBegin);
                break;
                var hourMinutelist = dailyQuestOpenTime.GetHourMinuteByWeek(i);
                if (hourMinutelist != null)
                {
                    time = StringUtility.Contact(hourMinutelist[0].hourBegin > 9 ? hourMinutelist[0].hourBegin.ToString() : "0" + hourMinutelist[0].hourBegin, ":", hourMinutelist[0].minuteBegin > 9 ? hourMinutelist[0].minuteBegin.ToString() : "0" + hourMinutelist[0].minuteBegin);
                    break;
                }
            }
        }
@@ -470,7 +491,7 @@
            }
            pushSB.Length = 0;
            List<int> indexlist = pushSetDict.Keys.ToList();
            for(int i = indexlist.Count - 1; i > -1; i--)
            for (int i = indexlist.Count - 1; i > -1; i--)
            {
                if (pushSetDict[indexlist[i]])
                {
@@ -508,13 +529,13 @@
                case DailyQuestType.FairyLeague:
                case DailyQuestType.FairyFeast:
                case DailyQuestType.FairyTask:
                    var _dailyConfig = ConfigManager.Instance.GetTemplate<DailyQuestConfig>(_dailyQuestId);
                    var _dailyConfig = Config.Instance.Get<DailyQuestConfig>(_dailyQuestId);
                    return PlayerDatas.Instance.baseData.Family > 0 &&
                        (_dailyConfig.UnLockFuncID == 0 || FuncOpen.Instance.IsFuncOpen(_dailyConfig.UnLockFuncID));
                case DailyQuestType.RuneTowerSweep:
                    return ModelCenter.Instance.GetModel<RuneTowerModel>().yesterdayPassFloor > 0;
                default:
                    var dailyConfig = ConfigManager.Instance.GetTemplate<DailyQuestConfig>(_dailyQuestId);
                    var dailyConfig = Config.Instance.Get<DailyQuestConfig>(_dailyQuestId);
                    return dailyConfig.UnLockFuncID == 0 || FuncOpen.Instance.IsFuncOpen(dailyConfig.UnLockFuncID);
            }
        }
@@ -529,20 +550,17 @@
            DailyQuestOpenTime openTime;
            dailyModel.TryGetOpenTime(dailyId, out openTime);
            var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
            if (openTime.openTimes.ContainsKey(dayOfWeek))
            var hourMinutes = openTime.GetHourMinuteByWeek(dayOfWeek);
            if (hourMinutes != null)
            {
                var hourMinutes = openTime.openTimes[dayOfWeek];
                for (int i = 0; i < hourMinutes.Count; i++)
                {
                    var minutes = TimeUtility.ServerNow.Hour * 60 + TimeUtility.ServerNow.Minute;
                    float minuteOffset = (hourMinutes[i].hourBegin * 60 + hourMinutes[i].minuteBegin) - minutes;
                    if (minuteOffset <= 2 && minuteOffset > 0)
                    {
                        RemoveActivityPush(dailyId);
                    }
                    else if (minuteOffset < 0 && minuteOffset >= -2)
                    {
                        AddActivityPush(dailyId);
                        string key = StringUtility.Contact(dailyId, dayOfWeek, hourMinutes[i].hourBegin);
                        RemoveActivityPushByKey(dailyId, key);
                    }
                }
            }