From 0ab6e6f007514db871e381c73dc2f2007be0f204 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 01 九月 2018 16:47:26 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/Welfare/OperationTimeHepler.cs | 110 ++++++++++++++++++++++++++++++++++++
System/Welfare/NPracticePointWin.cs | 20 ++++--
System/Welfare/MultipleRealmPointModel.cs | 49 +++++++---------
3 files changed, 145 insertions(+), 34 deletions(-)
diff --git a/System/Welfare/MultipleRealmPointModel.cs b/System/Welfare/MultipleRealmPointModel.cs
index 881227e..c1c4ed9 100644
--- a/System/Welfare/MultipleRealmPointModel.cs
+++ b/System/Welfare/MultipleRealmPointModel.cs
@@ -8,6 +8,7 @@
public Redpoint multipleRed = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20908);
public string LocalRecord_Key;
bool isNewDay = false;
+ bool openNotify = false;
public event Action<int> onStateUpate;
@@ -29,13 +30,10 @@
public void OnPlayerLoginOk()
{
+ openNotify = false;
LocalRecord_Key = StringUtility.Contact("MultipleRealmRecord", PlayerDatas.Instance.baseData.PlayerID);
- OperationTimeHepler.Instance.operationStartEvent -= RefreshOperationState;
- OperationTimeHepler.Instance.operationStartEvent += RefreshOperationState;
- OperationTimeHepler.Instance.operationEndEvent -= RefreshOperationState;
- OperationTimeHepler.Instance.operationEndEvent += RefreshOperationState;
- OperationTimeHepler.Instance.operationServerCloseEvent -= RefreshOperationClose;
- OperationTimeHepler.Instance.operationServerCloseEvent += RefreshOperationClose;
+ GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
+ GlobalTimeEvent.Instance.secondEvent += SecondEvent;
CheckShowRed();
}
@@ -50,7 +48,7 @@
{
OperationBase operation;
OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipRealmPoint, out operation);
- return operation != null && operation.SatisfyOpenCondition() && operation.InDay(TimeUtility.ServerNow);
+ return operation != null && (operation as OperationMultipleRealmPoint).InActiveTime(TimeUtility.ServerNow);
}
}
@@ -70,48 +68,45 @@
}
}
-
- private void RefreshOperationClose(Operation type)
+ private void SecondEvent()
{
- if (type != Operation.MultipRealmPoint) return;
- CheckShowRed();
- if (onStateUpate != null)
+ if (IsOpen && !openNotify)
{
- onStateUpate(8);
+ openNotify = true;
+ CheckShowRed();
+ if (onStateUpate != null)
+ {
+ onStateUpate(8);
+ }
}
- }
-
- private void RefreshOperationState(Operation type, int arg2)
- {
- if (type != Operation.MultipRealmPoint) return;
- CheckShowRed();
- if (onStateUpate != null)
+ else if (!IsOpen && openNotify)
{
- onStateUpate(8);
+ openNotify = false;
+ CheckShowRed();
+ if (onStateUpate != null)
+ {
+ onStateUpate(8);
+ }
}
}
public void CheckShowRed(bool isClick = false)
{
- bool isOpen = OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.MultipRealmPoint);
- if (!isOpen) return;
+ if (!IsOpen) return;
if(!isNewDay)
{
if (!PlayerPrefs.HasKey(LocalRecord_Key))
{
- DebugEx.Log("璁剧疆璁板綍鏃堕棿锛�" + TimeUtility.ServerNow.Day);
LocalSave.SetInt(LocalRecord_Key, TimeUtility.ServerNow.Day);
isNewDay = true;
}
else
{
- DebugEx.Log("寰楀埌璁板綍鏃堕棿锛�" + LocalSave.GetInt(LocalRecord_Key));
if (TimeUtility.ServerNow.Day != LocalSave.GetInt(LocalRecord_Key))
{
isNewDay = true;
- DebugEx.Log("璁剧疆璁板綍鏃堕棿锛�" + TimeUtility.ServerNow.Day);
LocalSave.SetInt(LocalRecord_Key, TimeUtility.ServerNow.Day);
}
}
@@ -119,7 +114,7 @@
if(!isClick)
{
- if (isOpen && isNewDay)
+ if (IsOpen && isNewDay)
{
multipleRed.state = RedPointState.Simple;
}
diff --git a/System/Welfare/NPracticePointWin.cs b/System/Welfare/NPracticePointWin.cs
index 4063c39..51dc40e 100644
--- a/System/Welfare/NPracticePointWin.cs
+++ b/System/Welfare/NPracticePointWin.cs
@@ -70,15 +70,21 @@
private void RefreshSecond()
{
- int seconds = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.MultipRealmPoint);
- if (seconds > 0)
+ OperationBase operation;
+ OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipRealmPoint, out operation);
+ if(operation != null)
{
- remainTimeText.text = StringUtility.Contact("<color=#8DDC11FF>", TimeUtility.SecondsToDHMSCHS(seconds), "</color>");
+ int seconds = (operation as OperationMultipleRealmPoint).GetRemainTime(TimeUtility.ServerNow);
+ if (seconds > 0)
+ {
+ remainTimeText.text = StringUtility.Contact("<color=#8DDC11FF>", TimeUtility.SecondsToDHMSCHS(seconds), "</color>");
+ }
+ else
+ {
+ remainTimeText.text = UIHelper.GetTextColorByItemColor(TextColType.Red, Language.Get("XMZZ110"));
+ }
}
- else
- {
- remainTimeText.text = UIHelper.GetTextColorByItemColor(TextColType.Red, Language.Get("XMZZ110"));
- }
+
}
}
}
diff --git a/System/Welfare/OperationTimeHepler.cs b/System/Welfare/OperationTimeHepler.cs
index 340f5a6..0eaf6a6 100644
--- a/System/Welfare/OperationTimeHepler.cs
+++ b/System/Welfare/OperationTimeHepler.cs
@@ -1320,10 +1320,120 @@
public class OperationMultipleRealmPoint : OperationBase
{
public int multiplePractice; //鍊嶆暟
+ public int startHour = 5;
+ public int startMinute = 0;
+ public int startSecond = 0;
public override bool SatisfyOpenCondition()
{
return PlayerDatas.Instance.baseData.LV >= limitLv;
}
+
+ public bool InActiveTime(DateTime time)
+ {
+ if (time.Year != startDate.year && time.Year != endDate.year)
+ {
+ return false;
+ }
+
+ if (startDate.year != endDate.year)
+ {
+ if (time.Year == startDate.year)
+ {
+ if (time.Month < startDate.month)
+ {
+ return false;
+ }
+ else if (time.Month == startDate.month && time.Day < startDate.day)
+ {
+ return false;
+ }
+ else if(time.Month == startDate.month
+ && time.Day == startDate.day
+ && time.Hour < startHour)
+ {
+ return false;
+ }
+ else if (time.Month == startDate.month
+ && time.Day == startDate.day
+ && time.Hour == startHour
+ && time.Minute < startMinute)
+ {
+ return false;
+ }
+ else if (time.Month == startDate.month
+ && time.Day == startDate.day
+ && time.Hour == startHour
+ && time.Minute == startMinute
+ && time.Second < startSecond)
+ {
+ return false;
+ }
+ }
+ else if (time.Year == endDate.year)
+ {
+ if (time.Month > endDate.month)
+ {
+ return false;
+ }
+ else if (time.Month == endDate.month && time.Day > endDate.day)
+ {
+ return false;
+ }
+ else if(time.Month == endDate.month
+ && time.Day == endDate.day
+ && time.Hour > startHour)
+ {
+ return false;
+ }
+ else if (time.Month == endDate.month
+ && time.Day == endDate.day
+ && time.Hour == startHour
+ && time.Minute > startMinute)
+ {
+ return false;
+ }
+ else if (time.Month == endDate.month
+ && time.Day == endDate.day
+ && time.Hour == startHour
+ && time.Minute == startMinute
+ && time.Second > startSecond)
+ {
+ return false;
+ }
+ }
+ }
+ else
+ {
+ if (time.Month < startDate.month
+ || (time.Month == startDate.month && time.Day < startDate.day)
+ || (time.Month == startDate.month && time.Day == startDate.day && time.Hour < startHour)
+ || (time.Month == startDate.month && time.Day == startDate.day && time.Hour == startHour && time.Minute < startMinute)
+ || (time.Month == startDate.month && time.Day == startDate.day && time.Hour == startHour && time.Minute == startMinute) && time.Second < startSecond)
+ {
+ return false;
+ }
+ if (time.Month > endDate.month
+ || (time.Month == endDate.month && time.Day > endDate.day)
+ || (time.Month == endDate.month && time.Day == endDate.day && time.Hour > startHour)
+ || (time.Month == endDate.month && time.Day == endDate.day && time.Hour == startHour && time.Minute > startMinute)
+ || (time.Month == endDate.month && time.Day == endDate.day && time.Hour == startHour && time.Minute == startMinute) && time.Second > startSecond)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public int GetRemainTime(DateTime time)
+ {
+ var seconds = 0;
+ if (InActiveTime(time))
+ {
+ DateTime endTime = new DateTime(endDate.year, endDate.month, endDate.day, startHour, 0, 0);
+ seconds = (int)(endTime - time).TotalSeconds;
+ }
+ return seconds;
+ }
}
public enum Operation
--
Gitblit v1.8.0