From 7f92dcba5e30ef90bf6d0c82ff95736015a828c6 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 09 十二月 2025 12:00:45 +0800
Subject: [PATCH] 23 【付费】首充入口未消失 修复全领取后每次上线,都会将本地记录的领取时间向后推一天,导致入口关不掉bug
---
Main/System/FirstCharge/FirstChargeManager.cs | 43 +++++++++++++------------------------------
Main/System/Main/HomeWin.cs | 10 ++++++----
2 files changed, 19 insertions(+), 34 deletions(-)
diff --git a/Main/System/FirstCharge/FirstChargeManager.cs b/Main/System/FirstCharge/FirstChargeManager.cs
index 34f8ba8..c647081 100644
--- a/Main/System/FirstCharge/FirstChargeManager.cs
+++ b/Main/System/FirstCharge/FirstChargeManager.cs
@@ -329,19 +329,20 @@
OnUpdateFirstChargeInfo?.Invoke();
}
+ public string key { get { return StringUtility.Contact("FirstCharge_AllRewardsClaimed_Time_", PlayerDatas.Instance.baseData.PlayerID); } }
+
/// <summary>
/// 妫�鏌ユ槸鍚︽墍鏈夐鍏呭鍔遍兘宸查鍙栵紝濡傛灉鏄紝鍒欏皢褰撳墠鏈嶅姟鍣ㄦ椂闂翠繚瀛樺埌鏈湴
/// </summary>
private void CheckAndSaveAllRewardsClaimedTime()
{
- // 妫�鏌ユ槸鍚︽墍鏈夊鍔遍兘宸查鍙�
- if (IsAllFirstChargeRewardsClaimed())
- {
- // 鐢熸垚涓�涓敮涓�鐨勯敭鏉ュ瓨鍌ㄦ椂闂�
- string key = $"FirstCharge_AllRewardsClaimed_Time_{PlayerDatas.Instance.baseData.PlayerID}";
- // 灏嗗綋鍓嶆湇鍔″櫒鏃堕棿淇濆瓨鍒版湰鍦�
- LocalSave.SetString(key, TimeUtility.ServerNow.Ticks.ToString());
- }
+ if (LocalSave.HasKey(key))
+ return;
+ // 鎵�鏈夊鍔遍兘宸查鍙�?
+ if (!IsAllFirstChargeRewardsClaimed())
+ return;
+ // 灏嗗綋鍓嶆湇鍔″櫒鏃堕棿淇濆瓨鍒版湰鍦�
+ LocalSave.SetInt(key, TimeUtility.AllSeconds);
}
public void UpdateRedPoint()
{
@@ -461,31 +462,13 @@
// 妫�鏌ユ槸鍚﹀凡缁忚繃浜嗘墍鏈夊鍔遍鍙栧畬姣曞悗鐨勭浜屽ぉ0鐐�
public bool IsNextDayAfterAllClaimed()
{
- // 鐢熸垚涓�涓敮涓�鐨勯敭鏉ヨ幏鍙栨椂闂�
- string key = $"FirstCharge_AllRewardsClaimed_Time_{PlayerDatas.Instance.baseData.PlayerID}";
-
- // 妫�鏌ユ槸鍚﹀瓨鍦ㄨ褰曠殑鏃堕棿鎴�
if (!LocalSave.HasKey(key))
return false;
-
- // 鑾峰彇璁板綍鐨勬椂闂存埑
- string timeString = LocalSave.GetString(key);
- if (string.IsNullOrEmpty(timeString))
+ int time = LocalSave.GetInt(key);
+ if (time <= 0)
return false;
-
- // 瑙f瀽鏃堕棿鎴�
- if (!long.TryParse(timeString, out long ticks))
- return false;
-
- // 灏嗘椂闂存埑杞崲涓篋ateTime
- DateTime allRewardsClaimedTime = new DateTime(ticks);
-
- // 璁$畻绗簩澶�0鐐圭殑鏃堕棿
- DateTime nextDayStart = allRewardsClaimedTime.Date.AddDays(1);
-
- // 鍒ゆ柇褰撳墠鏈嶅姟鍣ㄦ椂闂存槸鍚﹀凡缁忚繃浜嗙浜屽ぉ0鐐�
- DateTime serverNow = TimeUtility.ServerNow;
- return serverNow >= nextDayStart;
+ DateTime endDateTime = TimeUtility.GetTime((uint)time).Date.AddDays(1);
+ return TimeUtility.ServerNow >= endDateTime;
}
}
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 599bafc..c639f73 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -599,15 +599,17 @@
private void DisplayFirstChargeBtn()
{
- bool isFirstChargeFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
- if (FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed() &&
- FirstChargeManager.Instance.IsNextDayAfterAllClaimed())
+ bool isFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
+ bool isAllHave = FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed();
+ bool isNextDay = FirstChargeManager.Instance.IsNextDayAfterAllClaimed();
+
+ if (isAllHave && isNextDay)
{
FirstChargeBtn.SetActive(false);
}
else
{
- FirstChargeBtn.SetActive(isFirstChargeFuncOpen);
+ FirstChargeBtn.SetActive(isFuncOpen);
}
}
--
Gitblit v1.8.0