From 22cc6e17b98ad9750fdc9f2a880200064b1f2596 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 15 一月 2026 19:46:13 +0800
Subject: [PATCH] 0312 广告统一加红点
---
Main/System/BoneField/AdsManager.cs | 35 +++++++++++++++++++++++++++++++++++
Main/Config/Configs/ADAwardConfig.cs | 11 ++++++++++-
2 files changed, 45 insertions(+), 1 deletions(-)
diff --git a/Main/Config/Configs/ADAwardConfig.cs b/Main/Config/Configs/ADAwardConfig.cs
index 2ff9a2c..dfdbe0d 100644
--- a/Main/Config/Configs/ADAwardConfig.cs
+++ b/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)
{
diff --git a/Main/System/BoneField/AdsManager.cs b/Main/System/BoneField/AdsManager.cs
index 90036af..262527e 100644
--- a/Main/System/BoneField/AdsManager.cs
+++ b/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;
+ }
}
}
}
--
Gitblit v1.8.0