hch
2026-01-15 22cc6e17b98ad9750fdc9f2a880200064b1f2596
0312 广告统一加红点
2个文件已修改
46 ■■■■■ 已修改文件
Main/Config/Configs/ADAwardConfig.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/BoneField/AdsManager.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Config/Configs/ADAwardConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           YYL
//    [  Date ]:           Wednesday, November 19, 2025
//    [  Date ]:           2026年1月15日
//--------------------------------------------------------
using System.Collections.Generic;
@@ -21,6 +21,9 @@
    public int[][] ADAwardItemList;
    public int ADAwardType;
    public int ADAwardValue;
    public int FuncID;
    public int RedpointID;
    public int ParentRedpointID;
    public override int LoadKey(string _key)
    {
@@ -41,6 +44,12 @@
            int.TryParse(tables[3],out ADAwardType); 
            int.TryParse(tables[4],out ADAwardValue); 
            int.TryParse(tables[5],out FuncID);
            int.TryParse(tables[6],out RedpointID);
            int.TryParse(tables[7],out ParentRedpointID);
        }
        catch (Exception exception)
        {
Main/System/BoneField/AdsManager.cs
@@ -5,14 +5,28 @@
    //<广告ID,今日已领取广告奖励次数>
    private Dictionary<int, int> adsInfoDict = new Dictionary<int, int>();
    public event Action<int, int, int> OnAdsInfoListUpdateEvent;//ADID type value
    public Dictionary<int, Redpoint> redPointDict = new Dictionary<int, Redpoint>();
    public override void Init()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEvent;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += UpdateRedpoint;
        var keys = ADAwardConfig.GetKeys();
        for (int i = 0; i < keys.Count; i++)
        {
            var config = ADAwardConfig.Get(keys[i]);
            if (config.RedpointID == 0)
            {
                continue;
            }
            redPointDict[keys[i]] = new Redpoint(config.ParentRedpointID, config.RedpointID);
        }
    }
    public override void Release()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEvent;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= UpdateRedpoint;
    }
    public void OnBeforePlayerDataInitializeEvent()
@@ -89,6 +103,27 @@
            var value = aDAwardConfig.ADAwardValue;
            var type = aDAwardConfig.ADAwardType;
            OnAdsInfoListUpdateEvent?.Invoke(item.ADID, type, value);
            UpdateRedpoint();
        }
    }
    void UpdateRedpoint()
    {
        foreach (var key in redPointDict.Keys)
        {
            redPointDict[key].state = RedPointState.None;
            var config = ADAwardConfig.Get(key);
            if (!FuncOpen.Instance.IsFuncOpen(config.FuncID))
            {
                continue;
            }
            if (GetADCntByADID(key) < config.ADCntMax)
            {
                redPointDict[key].state = RedPointState.Simple;
            }
        }
    }
}