From fb0345c8f9815f1b9f655d6363da3a9cedd3944f Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期一, 10 九月 2018 11:25:07 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/DailyQuest/DailyQuestModel.cs | 94 ++++++++++-------------------------------------
1 files changed, 20 insertions(+), 74 deletions(-)
diff --git a/System/DailyQuest/DailyQuestModel.cs b/System/DailyQuest/DailyQuestModel.cs
index 789a942..3f1b95b 100644
--- a/System/DailyQuest/DailyQuestModel.cs
+++ b/System/DailyQuest/DailyQuestModel.cs
@@ -451,22 +451,16 @@
public List<int> GetQuestByWeekTimeNode(int _week, int _timeNode)
{
- if (questCalendar.ContainsKey(_week))
+ var quests = new List<int>();
+ foreach (var item in dailyQuestOpenTimes.Values)
{
- var timeNodeToQuests = questCalendar[_week];
- if (timeNodeToQuests.ContainsKey(_timeNode))
+ if (item.ContainTimeNode(_week, _timeNode))
{
- return questCalendar[_week][_timeNode];
- }
- else
- {
- return null;
+ quests.Add(item.id);
}
}
- else
- {
- return null;
- }
+
+ return quests;
}
/// <summary>
@@ -476,14 +470,13 @@
/// <returns></returns>
public Dictionary<int, List<int>> GetQuestByWeekTime(int _week)
{
- if (questCalendar.ContainsKey(_week))
+ var timeNodes = new Dictionary<int, List<int>>();
+ foreach (var item in GeneralConfig.Instance.dailyQuestOpenTime)
{
- return questCalendar[_week];
+ timeNodes[item] = GetQuestByWeekTimeNode(_week, item);
}
- else
- {
- return null;
- }
+
+ return timeNodes;
}
private void OnFunctionStateChange(int _functionId)
@@ -731,22 +724,9 @@
DailyQuestOpenTime openTime2;
TryGetOpenTime(_rhs, out openTime2);
- var isValidServerTime1 = openTime1.IsValidServerOpenTime();
- var isValidServerTime2 = openTime2.IsValidServerOpenTime();
-
- if (isValidServerTime1 && !isValidServerTime2)
- {
- return -1;
- }
-
- if (!isValidServerTime1 && isValidServerTime2)
- {
- return 1;
- }
-
- var dayOfWeek = (int)DateTime.Now.DayOfWeek;
- var isActiveDay1 = openTime1.always || openTime1.openTimes.ContainsKey(dayOfWeek);
- var isActiveDay2 = openTime2.always || openTime2.openTimes.ContainsKey(dayOfWeek);
+ var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
+ var isActiveDay1 = openTime1.always || openTime1.GetHourMinuteByWeek(dayOfWeek) != null;
+ var isActiveDay2 = openTime2.always || openTime2.GetHourMinuteByWeek(dayOfWeek) != null;
if (isActiveDay1 && !isActiveDay2)
{
@@ -823,12 +803,6 @@
DailyQuestOpenTime openTime;
if (TryGetOpenTime(_dailyQuestId, out openTime))
{
- var validServerTime = openTime.IsValidServerOpenTime();
- if (!validServerTime)
- {
- return DailyQuestState.ServerForbid;
- }
-
var inOpenTime = openTime.InOpenTime();
if (!inOpenTime)
{
@@ -1000,12 +974,16 @@
{
case 1:
var activityOpenTime = Config.Instance.Get<DailyQuestOpenTimeConfig>(config.RelatedID);
- openTime = dailyQuestOpenTimes[config.ID] = new DailyQuestOpenTime(config.ID, activityOpenTime.OpenTime, activityOpenTime.Duration);
+ openTime = dailyQuestOpenTimes[config.ID] = new DailyQuestOpenTime(config.ID);
+ openTime.ParseQuestNormalOpenTime(activityOpenTime.OpenTime, activityOpenTime.Duration);
+ openTime.ParseQuestSpecificOpenTimes(DailyQuestSpecialOpenTimeConfig.GetDailyQuestTimes(config.RelatedID));
dailyActionToDailyQuestTable[config.RelatedID] = config.ID;
break;
case 2:
var dungeonOpenTimes = DungeonStateTimeConfig.DungeonStateCanEnterFB(config.RelatedID);
- openTime = dailyQuestOpenTimes[config.ID] = new DailyQuestOpenTime(config.ID, dungeonOpenTimes);
+ openTime = dailyQuestOpenTimes[config.ID] = new DailyQuestOpenTime(config.ID);
+ openTime.ParseDungeonNormalOpenTimes(dungeonOpenTimes);
+ openTime.ParseDungeonSpecificOpenTimes(DungeonSpecialStateTimeConfig.GetDungeonTimes(config.RelatedID));
dungeonToDailyQuestTable[config.RelatedID] = config.ID;
break;
}
@@ -1014,37 +992,6 @@
dailyQuests[config.ID] = new DailyQuestData(config.ID, DAILYQUEST_REDPOINTIDBASE + redpointIndex++, redpointParent);
}
- for (int i = 0; i < 7; i++)
- {
- questCalendar[i] = new Dictionary<int, List<int>>();
- }
-
- foreach (var key in dailyQuestOpenTimes.Keys)
- {
- var dailyQuestOpenTime = dailyQuestOpenTimes[key];
- foreach (var week in dailyQuestOpenTime.openTimes.Keys)
- {
- var hourMinutes = dailyQuestOpenTime.openTimes[week];
- var timeNodeToQuests = questCalendar[week];
- for (int i = 0; i < hourMinutes.Count; i++)
- {
- var hourMinute = hourMinutes[i];
- var timeNode = hourMinute.hourBegin * 60 + hourMinute.minuteBegin;
- List<int> quests;
- if (timeNodeToQuests.ContainsKey(timeNode))
- {
- quests = timeNodeToQuests[timeNode];
- }
- else
- {
- timeNodeToQuests[timeNode] = quests = new List<int>();
- }
-
- quests.Add(key);
- }
-
- }
- }
}
public enum DailyQuestCategory
@@ -1056,7 +1003,6 @@
public enum DailyQuestState
{
Locked = 0,
- ServerForbid = 1,
OutTime = 2,
Normal = 3,
CanBuyTimes = 5,
--
Gitblit v1.8.0