From 81eef20ef97e466ce9552dcce6581d7e9917a2d7 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 15 四月 2026 15:51:42 +0800
Subject: [PATCH] 0312 优化广告断线重连
---
Main/System/BoneField/AdsManager.cs | 37 +++++++++++++++++++++++++++++++++++--
Main/SDK/SDKUtils.cs | 1 -
2 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/Main/SDK/SDKUtils.cs b/Main/SDK/SDKUtils.cs
index f28b9a0..0027f75 100644
--- a/Main/SDK/SDKUtils.cs
+++ b/Main/SDK/SDKUtils.cs
@@ -649,7 +649,6 @@
if (AdsManager.Instance.waitAdID > 0)
{
AdsManager.Instance.GetAdsAward(AdsManager.Instance.waitAdID);
- AdsManager.Instance.waitAdID = 0;
}
break;
case CodeA2U.AdLoadFail:
diff --git a/Main/System/BoneField/AdsManager.cs b/Main/System/BoneField/AdsManager.cs
index c24235c..45afd4b 100644
--- a/Main/System/BoneField/AdsManager.cs
+++ b/Main/System/BoneField/AdsManager.cs
@@ -9,13 +9,14 @@
public Dictionary<int, Redpoint> redPointDict = new Dictionary<int, Redpoint>();
public int waitAdID = 0; //鍥炶皟鍚庡彂鏀惧鍔辩敤
+ public int waitRemainAdsCount = 0; //鏂嚎骞朵笉鐭ユ槸鍚﹂鍙栨垚鍔� 鐢ㄦ鏁板仛浜屾楠岃瘉
int loadErrorCD = 10; //绛夊緟10绉掑悗鎵嶈兘鍐嶈姹�
public float lastLoadErrorTime = 0;
public override void Init()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEvent;
- DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += UpdateRedpoint;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += PlayerLoginOkEvent;
DungeonManager.Instance.UpdateFBInfoListEvent += OnUpdateFBInfoChangeEvent;
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
@@ -34,7 +35,7 @@
public override void Release()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEvent;
- DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= UpdateRedpoint;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= PlayerLoginOkEvent;
DungeonManager.Instance.UpdateFBInfoListEvent -= OnUpdateFBInfoChangeEvent;
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
}
@@ -52,7 +53,13 @@
public void OnBeforePlayerDataInitializeEvent()
{
waitAdID = 0;
+ waitRemainAdsCount = 0;
adsInfoDict.Clear();
+ }
+
+ public void PlayerLoginOkEvent()
+ {
+ UpdateRedpoint();
}
private void OnUpdateFBInfoChangeEvent(int mapID)
@@ -73,6 +80,23 @@
GameNetSystem.Instance.SendInfo(pack);
}
+ //鏌ョ湅骞垮憡绛夊緟澶箙鍙兘瀵艰嚧濂栧姳琚竻绌猴紝闇�瑕佹仮澶�
+ public void RestoreAdsAward()
+ {
+ if (waitAdID == 0) return;
+ int adsCnt = GetADCntByADID(waitAdID);
+ var aDAwardConfig = ADAwardConfig.Get(waitAdID);
+ if (waitRemainAdsCount != 0 && waitRemainAdsCount == aDAwardConfig.ADCntMax - adsCnt)
+ {
+ //鎭㈠濂栧姳棰嗗彇
+ GetAdsAward(waitAdID);
+ }
+
+ waitAdID = 0;
+ waitRemainAdsCount = 0;
+ }
+
+
//鍖哄垎涓嶅悓娓犻亾鏄惁鏈夊箍鍛奡DK
public void PlayAds(int ADID)
{
@@ -89,7 +113,14 @@
SysNotifyMgr.Instance.ShowTip("AdLoadFail");
return;
}
+
+ //绛夊緟骞垮憡鐨処D鍜屽墿浣欐鏁�
waitAdID = ADID;
+ int adsCnt = GetADCntByADID(waitAdID);
+ var aDAwardConfig = ADAwardConfig.Get(waitAdID);
+ waitRemainAdsCount = aDAwardConfig.ADCntMax - adsCnt;
+
+
SDKUtils.Instance.PlayAds("b69a2b68bb3d22");
return;
}
@@ -190,6 +221,8 @@
UpdateRedpoint();
}
+
+ RestoreAdsAward();
}
void UpdateRedpoint()
--
Gitblit v1.8.0