From 3678e238ee59a49ecaf80248323a18dfcf3dcce2 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 18 十月 2018 20:28:01 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/DailyQuest/DailyQuestData.cs | 174 ++++++++++++++++++++++++++-----------------
System/OpenServerActivity/OpenServerActivityWin.cs | 4
System/MainInterfacePanel/PlayerTaskDatas.cs | 10 ++
System/FairyAu/FairyGrabBossNoticeWin.cs | 2
System/MainInterfacePanel/TaskBoxBGMWin.cs | 12 ++-
System/FairyAu/FairyGrabBossModel.cs | 26 ++++--
6 files changed, 142 insertions(+), 86 deletions(-)
diff --git a/System/DailyQuest/DailyQuestData.cs b/System/DailyQuest/DailyQuestData.cs
index 8b45358..238097e 100644
--- a/System/DailyQuest/DailyQuestData.cs
+++ b/System/DailyQuest/DailyQuestData.cs
@@ -334,110 +334,133 @@
}
- public int GetFirstOpenSurplusSeconds()
+ public int GetNextSessionSurplusTime()
{
- if (IsAfterFirstOpen())
+ if (InOpenTime())
{
return 0;
}
var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
var dayIndex = TimeUtility.OpenDay + 1;
- var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
- var startDay = dayIndex;
- var createRoleTime = TimeUtility.createRoleTime;
- if (dayIndex == 1 && specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
+ var maxSpecialDays = 15 - (openDayWeek == 0 ? 7 : openDayWeek);
+ var hour = TimeUtility.ServerNow.Hour;
+ var minute = TimeUtility.ServerNow.Minute;
+ for (int i = 0; i <= 7; i++)//涓�鍛ㄥ唴蹇呴』鏈夋椿鍔�
{
- var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
- if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month
- && createRoleTime.Day == openServerDay.Day)
+ List<HourMinute> hourminutes = null;
+ var days = dayIndex + i;
+ if (days <= maxSpecialDays)
{
- var hourMinutes = specialOpenTimes[openDayWeek][1];
- var hourMinute = hourMinutes[hourMinutes.Count - 1];
- var hour = createRoleTime.Hour;
- var minute = createRoleTime.Minute;
- if (hour > hourMinute.hourEnd ||
- (hour == hourMinute.hourEnd && minute >= hourMinute.minuteEnd))
+ if (!specialOpenTimes.ContainsKey(openDayWeek)
+ || !specialOpenTimes[openDayWeek].ContainsKey(days))
{
- startDay++;
+ continue;
}
+ hourminutes = specialOpenTimes[openDayWeek][days];
}
- }
- for (int i = startDay; i <= maxDays; i++)
- {
- if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
+ else
{
- var days = i - dayIndex;
- var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0];
- var hour = TimeUtility.ServerNow.Hour;
- var minute = TimeUtility.ServerNow.Minute;
- var time = TimeUtility.ServerNow.AddDays(days);
- time = new DateTime(time.Year, time.Month, time.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0);
- var seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds;
- return Mathf.Max(0, seconds);
+ var dayOfWeek = (int)TimeUtility.ServerNow.AddTicks(i * TimeSpan.TicksPerDay).DayOfWeek;
+ if (!openTimes.ContainsKey(dayOfWeek))
+ {
+ continue;
+ }
+ hourminutes = openTimes[dayOfWeek];
+ }
+ if (hourminutes != null)
+ {
+ foreach (var hourMinute in hourminutes)
+ {
+ if (days == dayIndex && hourMinute.AfterOpenTime(hour, minute))
+ {
+ continue;
+ }
+ var time = TimeUtility.ServerNow.AddTicks(i * TimeSpan.TicksPerDay);
+ time = new DateTime(time.Year, time.Month, time.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0);
+ var seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds;
+ return Mathf.Max(0, seconds);
+ }
}
}
return 0;
}
- public bool IsAfterFirstOpen()
+ public int PassSessionCount(DateTime beginTime)
{
- var isSpecialDay = TimeUtility.OpenWeekCnt <= 1;
- if (!isSpecialDay)
- {
- return true;
- }
var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
var dayIndex = TimeUtility.OpenDay + 1;
- var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
- var startDay = 1;
- var createRoleTime = TimeUtility.createRoleTime;
- if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(1))
+ var maxSpecialDays = 15 - (openDayWeek == 0 ? 7 : openDayWeek);
+ var beginHour = beginTime.Hour;
+ var beginMinute = beginTime.Minute;
+ var session = 0;
+
+ var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
+ openServerDay = new DateTime(openServerDay.Year, openServerDay.Month, openServerDay.Day);
+ var beginDay = (int)(beginTime - openServerDay).TotalDays + 1;
+ List<HourMinute> hourMinutes = null;
+ if (beginDay <= maxSpecialDays)
{
- var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
- if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month
- && createRoleTime.Day == openServerDay.Day)
+ if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(beginDay))
{
- var hourMinutes = specialOpenTimes[openDayWeek][1];
- var hourMinute = hourMinutes[hourMinutes.Count - 1];
- var hour = createRoleTime.Hour;
- var minute = createRoleTime.Minute;
- if (hour > hourMinute.hourEnd ||
- (hour == hourMinute.hourEnd && minute >= hourMinute.minuteEnd))
- {
- startDay = 2;
- }
+ hourMinutes = specialOpenTimes[openDayWeek][beginDay];
}
}
- for (int i = startDay; i <= maxDays; i++)
+ else
{
- if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
+ var dayOfWeek = (int)beginTime.DayOfWeek;
+ if (openTimes.ContainsKey(dayOfWeek))
+ {
+ hourMinutes = openTimes[dayOfWeek];
+ }
+ }
+ if (hourMinutes != null)
+ {
+ var hourMinute = hourMinutes[hourMinutes.Count - 1];
+ if (hourMinute.AfterOpenTime(beginHour, beginMinute))
+ {
+ beginDay++;
+ }
+ }
+
+ var nowHour = TimeUtility.ServerNow.Hour;
+ var nowMinute = TimeUtility.ServerNow.Minute;
+ for (int i = beginDay; i <= dayIndex; i++)
+ {
+ hourMinutes = null;
+ if (i <= maxSpecialDays)
+ {
+ if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(i))
+ {
+ hourMinutes = specialOpenTimes[openDayWeek][i];
+ }
+ }
+ else
+ {
+ var dayOfWeek = (int)openServerDay.AddTicks((i - 1) * TimeSpan.TicksPerDay).DayOfWeek;
+ if (openTimes.ContainsKey(dayOfWeek))
+ {
+ hourMinutes = openTimes[dayOfWeek];
+ }
+ }
+ if (hourMinutes != null)
{
if (i < dayIndex)
{
- return true;
+ session += hourMinutes.Count;
}
- if (i == dayIndex)
+ else if (i == dayIndex)
{
- var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0];
- var hour = TimeUtility.ServerNow.Hour;
- var minute = TimeUtility.ServerNow.Minute;
- if (hour < hourMinute.hourEnd ||
- (hour == hourMinute.hourEnd && minute < hourMinute.minuteEnd))
+ foreach (var hourMinute in hourMinutes)
{
- return false;
+ if (hourMinute.AfterOpenTime(nowHour, nowMinute))
+ {
+ session++;
+ }
}
- else
- {
- return true;
- }
- }
- if (i > dayIndex)
- {
- return false;
}
}
}
- return true;
+ return session;
}
public bool ContainTimeNode(int week, int timeNode)
@@ -621,6 +644,19 @@
}
}
+ public bool AfterOpenTime(int hour,int minute)
+ {
+ if (wholeDay)
+ {
+ return false;
+ }
+ else
+ {
+ var minutes = hour * 60 + minute;
+ return (hourEnd * 60 + minuteEnd) <= minutes;
+ }
+ }
+
public override string ToString()
{
var minuteBeginStr = minuteBegin > 9 ? minuteBegin.ToString() : StringUtility.Contact("0", minuteBegin);
diff --git a/System/FairyAu/FairyGrabBossModel.cs b/System/FairyAu/FairyGrabBossModel.cs
index 907c98c..6f3eee7 100644
--- a/System/FairyAu/FairyGrabBossModel.cs
+++ b/System/FairyAu/FairyGrabBossModel.cs
@@ -346,6 +346,12 @@
noticeShowPet = int.Parse(config.Numerical1);
noticeShowHorse = int.Parse(config.Numerical2);
}
+ config = Config.Instance.Get<FuncConfigConfig>("FairyGrabBossNoticeSessions");
+ noticeSessions = 2;
+ if (config != null)
+ {
+ noticeSessions = int.Parse(config.Numerical1);
+ }
}
public bool TryGetDropItems(int bossId, out List<Item> dropItems)
@@ -697,7 +703,8 @@
DailyQuestOpenTime dailyQuestOpenTime;
if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime))
{
- return FuncOpen.Instance.IsFuncOpen(139) && !dailyQuestOpenTime.IsAfterFirstOpen();
+ return FuncOpen.Instance.IsFuncOpen(139)
+ && dailyQuestOpenTime.PassSessionCount(TimeUtility.createRoleTime) < noticeSessions;
}
return false;
}
@@ -715,17 +722,20 @@
bool cacheNoticeOpen { get; set; }
+ int noticeSessions { get; set; }
+
public event Action<int> onStateUpate;
- public int GetFirstOpenSeconds()
+ public int GetNextSessionSeconds()
{
int seconds = 0;
- if (!InActivityTime)
+ if (!IsOpen)
{
- DailyQuestOpenTime dailyQuestOpenTime;
- if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime))
- {
- seconds = dailyQuestOpenTime.GetFirstOpenSurplusSeconds();
- }
+ return 0;
+ }
+ DailyQuestOpenTime dailyQuestOpenTime;
+ if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime))
+ {
+ seconds = dailyQuestOpenTime.GetNextSessionSurplusTime();
}
return seconds;
}
diff --git a/System/FairyAu/FairyGrabBossNoticeWin.cs b/System/FairyAu/FairyGrabBossNoticeWin.cs
index d022018..2ef905b 100644
--- a/System/FairyAu/FairyGrabBossNoticeWin.cs
+++ b/System/FairyAu/FairyGrabBossNoticeWin.cs
@@ -77,7 +77,7 @@
void DisplayTime()
{
- var seconds = model.GetFirstOpenSeconds();
+ var seconds = model.GetNextSessionSeconds();
var isOpen = model.IsOpen;
if (seconds > 0)
{
diff --git a/System/MainInterfacePanel/PlayerTaskDatas.cs b/System/MainInterfacePanel/PlayerTaskDatas.cs
index c40f77e..ccc3af9 100644
--- a/System/MainInterfacePanel/PlayerTaskDatas.cs
+++ b/System/MainInterfacePanel/PlayerTaskDatas.cs
@@ -358,7 +358,10 @@
{
if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
{
- RequestGetTaskAward("OK");
+ if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
+ {
+ RequestGetTaskAward("OK");
+ }
}
}
@@ -375,7 +378,10 @@
{
if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
{
- RequestGetTaskAward("OK");
+ if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
+ {
+ RequestGetTaskAward("OK");
+ }
}
}
}
diff --git a/System/MainInterfacePanel/TaskBoxBGMWin.cs b/System/MainInterfacePanel/TaskBoxBGMWin.cs
index b1c1c55..ae21e05 100644
--- a/System/MainInterfacePanel/TaskBoxBGMWin.cs
+++ b/System/MainInterfacePanel/TaskBoxBGMWin.cs
@@ -143,11 +143,15 @@
if (_AllMissionDict.ContainsKey(_TaskId))
{
- if (_AllMissionDict[_TaskId].Type == 7 || (_AllMissionDict[_TaskId].Type == 12 /*&& vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.AutoFairyMisstion) >= 1*/))
+ if (_AllMissionDict[_TaskId].Type == 7 || (_AllMissionDict[_TaskId].Type == 12))
{
- taskmodel.RequestGetTaskAward("OK");
- WindowCenter.Instance.CloseImmediately<TaskBoxBGMWin>();
- WindowCenter.Instance.Open<MainInterfaceWin>();
+ if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
+ {
+ taskmodel.RequestGetTaskAward("OK");
+ WindowCenter.Instance.CloseImmediately<TaskBoxBGMWin>();
+ WindowCenter.Instance.Open<MainInterfaceWin>();
+ }
+
}
}
}
diff --git a/System/OpenServerActivity/OpenServerActivityWin.cs b/System/OpenServerActivity/OpenServerActivityWin.cs
index b0ee292..8ff32b3 100644
--- a/System/OpenServerActivity/OpenServerActivityWin.cs
+++ b/System/OpenServerActivity/OpenServerActivityWin.cs
@@ -186,7 +186,7 @@
if (cell != null)
{
var activityCell = cell as OpenServerActivityCell;
- var seconds = fairyGrabBossModel.GetFirstOpenSeconds();
+ var seconds = fairyGrabBossModel.GetNextSessionSeconds();
bool isOpen = fairyGrabBossModel.IsOpen;
activityCell.title.gameObject.SetActive(seconds > 0 || isOpen);
activityCell.title.color = UIHelper.GetUIColor(TextColType.Green, true);
@@ -282,7 +282,7 @@
break;
case 13:
{
- var seconds = fairyGrabBossModel.GetFirstOpenSeconds();
+ var seconds = fairyGrabBossModel.GetNextSessionSeconds();
bool isOpen = fairyGrabBossModel.IsOpen;
_cell.title.gameObject.SetActive(seconds > 0 || isOpen);
_cell.title.color = UIHelper.GetUIColor(TextColType.Green, true);
--
Gitblit v1.8.0