hch
4 天以前 622037462ee49ea2652ca1ab1e5940badf1fd364
Merge branch 'master' of http://mobile.secondworld.net.cn:10010/r/Project_SG_scripts
3个文件已修改
58 ■■■■ 已修改文件
Main/Main.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/FirstCharge/FirstChargeManager.cs 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Mail/MailManager.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Main.cs
@@ -81,7 +81,6 @@
        managers.Add(MainLevelManager.Instance);
        managers.Add(BattleSettlementManager.Instance);
        managers.Add(GoldRushManager.Instance);
        managers.Add(MailManager.Instance);
        managers.Add(FirstChargeManager.Instance);
        managers.Add(NewBieCenter.Instance);
        
Main/System/FirstCharge/FirstChargeManager.cs
@@ -30,7 +30,8 @@
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
        RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
        InitClickTabDict();
        InitRedPoint();
    }
    public override void Release()
@@ -110,15 +111,15 @@
    {
        firstChargeInfoDict.Clear();
    }
    public void OnPlayerLoginOk()
    {
        InitClickTabDict();
        InitRedPoint();
        if (FuncOpen.Instance.IsFuncOpen(FuncID)&& TryGetUnBuyFirstId(out int firstId))
        if (FuncOpen.Instance.IsFuncOpen(FuncID) && TryGetUnBuyFirstId(out int firstId))
        {
            PopupWindowsProcessor.Instance.Add("FirstChargeWin");
        }
    }
    public bool TryGetFirstChargeDataByFirstId(int firstId, out FirstChargeData firstChargeData)
    {
        return firstChargeInfoDict.TryGetValue(firstId, out firstChargeData);
@@ -254,7 +255,7 @@
        UpdateRedPoint();
        OnUpdateFirstChargeInfo?.Invoke();
    }
    /// <summary>
    /// 检查是否所有首充奖励都已领取,如果是,则将当前服务器时间保存到本地
    /// </summary>
@@ -355,7 +356,7 @@
            }
        }
    }
    // 检查是否所有首充奖励都已经领取
    public bool IsAllFirstChargeRewardsClaimed()
    {
@@ -363,17 +364,17 @@
        var firstChargeIds = FirstChargeConfig.GetKeys();
        if (firstChargeIds == null || firstChargeIds.Count == 0)
            return false;
        foreach (var firstId in firstChargeIds)
        {
            // 尝试获取首充数据
            if (!TryGetFirstChargeDataByFirstId(firstId, out var firstChargeData))
                return false;
            // 检查是否购买
            if (!firstChargeData.IsBuy())
                return false;
            // 检查是否所有奖励都已领取
            if (!firstChargeData.IsAllHave())
                return false;
@@ -383,32 +384,32 @@
        // 检查是否已经过了第二天0点
        return true;
    }
    // 检查是否已经过了所有奖励领取完毕后的第二天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))
            return false;
        // 解析时间戳
        if (!long.TryParse(timeString, out long ticks))
            return false;
        // 将时间戳转换为DateTime
        DateTime allRewardsClaimedTime = new DateTime(ticks);
        // 计算第二天0点的时间
        DateTime nextDayStart = allRewardsClaimedTime.Date.AddDays(1);
        // 判断当前服务器时间是否已经过了第二天0点
        DateTime serverNow = TimeUtility.ServerNow;
        return serverNow >= nextDayStart;
@@ -458,8 +459,8 @@
        }
        return true;
    }
   // ... existing code ...
    // ... existing code ...
    /// <summary>
    /// 获取当前时间是购买这档充值礼包的第几天
    /// 购买的当天算作第一天,第二天0点后算第二天,以此类推
@@ -469,15 +470,15 @@
    {
        DateTime serverNow = TimeUtility.ServerNow;
        DateTime chargeTime = TimeUtility.GetTime(ChargeTime);
        DateTime chargeDate = chargeTime.Date;
        DateTime serverDate = serverNow.Date;
        // 计算从充值日期到当前日期的完整天数
        // 购买的当天算第一天,第二天0点后算第二天
        TimeSpan timeSpan = serverDate - chargeDate;
        int days = (int)timeSpan.TotalDays + 1; // +1 因为当天算第一天
        int maxDay = FirstChargeManager.Instance.maxDay;
        return Mathf.Min(maxDay, Mathf.Max(1, days));
Main/System/Mail/MailManager.cs
@@ -22,16 +22,12 @@
    public readonly string dateFormat = "yyyy.MM.dd";
    public string nowUuid = string.Empty;
    public int personalMailMaxLimitCount;
    public override void Init()
    {
        if (tabRedpoint0 == null)
        {
            tabRedpoint0 = new Redpoint(MainRedDot.MailRepoint, GetTabRedpointId(MailCategory.Personal));
        }
        if (tabRedpoint1 == null)
        {
            tabRedpoint1 = new Redpoint(MainRedDot.MailRepoint, GetTabRedpointId(MailCategory.Global));
        }
        tabRedpoint0 = new Redpoint(MainRedDot.MailRepoint, GetTabRedpointId(MailCategory.Personal));
        tabRedpoint1 = new Redpoint(MainRedDot.MailRepoint, GetTabRedpointId(MailCategory.Global));
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent;
        personalMailMaxLimitCount = int.Parse(FuncConfigConfig.Get("PersonalMail").Numerical1);
    }
@@ -143,7 +139,7 @@
        {
            // 小于1天(但未过期):按精确的小时/分钟显示。
            TimeSpan t = TimeSpan.FromDays(days);
            result = Language.Get("Mail12",StringUtility.Contact( " ", Language.Get("Mail13", t.Hours, t.Minutes)));
            result = Language.Get("Mail12", StringUtility.Contact(" ", Language.Get("Mail13", t.Hours, t.Minutes)));
        }
        else
        {