| using System; | 
| using System.Collections.Generic; | 
| public class AdsManager : GameSystemManager<AdsManager> | 
| { | 
|     //<广告ID,今日已领取广告奖励次数> | 
|     private Dictionary<int, int> adsInfoDict = new Dictionary<int, int>(); | 
|     public event Action<int,int> OnAdsInfoListUpdateEvent;//ADID ADMapID | 
|     public override void Init() | 
|     { | 
|         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent; | 
|     } | 
|   | 
|     public override void Release() | 
|     { | 
|         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent; | 
|     } | 
|   | 
|     public void OnBeforePlayerDataInitializeEvent() | 
|     { | 
|         adsInfoDict.Clear(); | 
|     } | 
|   | 
|     public void SendGetReward(int ADID) | 
|     { | 
|         var pack = new CA504_tagCMPlayerGetReward(); | 
|         pack.RewardType = 81;       //  广告奖励 81 | 
|         pack.DataEx = (uint)ADID;   // 广告奖励ID | 
|         GameNetSystem.Instance.SendInfo(pack); | 
|     } | 
|   | 
|     public void PlayAds(int ADID) | 
|     { | 
|         if (ADID == 1) | 
|         { | 
|   | 
|             int dataMapID = BoneFieldManager.Instance.DataMapID; | 
|             if (!DungeonManager.Instance.TryGetFBInfoByMapID(dataMapID, out var fbInfo)) | 
|                 return; | 
|             SendGetReward(ADID); | 
|             BoneFieldManager.Instance.SendBBeginFBWipeOut(dataMapID, (int)fbInfo.PassLineID); | 
|         } | 
|   | 
|     } | 
|   | 
|     public int GetADCntByADID(int ADID) | 
|     { | 
|         if (adsInfoDict.IsNullOrEmpty() || !adsInfoDict.ContainsKey(ADID)) | 
|             return 0; | 
|         return adsInfoDict[ADID]; | 
|     } | 
|   | 
|     public void UpdateAdsInfoList(HA722_tagSCADInfoList vNetData) | 
|     { | 
|         if (vNetData == null || vNetData.ADInfoList.IsNullOrEmpty()) | 
|             return; | 
|         foreach (var item in vNetData.ADInfoList) | 
|         { | 
|             adsInfoDict[item.ADID] = item.ADCnt; | 
|   | 
|             int mapID = 0; | 
|             if (ADAwardConfig.HasKey(item.ADID)) | 
|             { | 
|                 ADAwardConfig aDAwardConfig = ADAwardConfig.Get(item.ADID); | 
|                 mapID = aDAwardConfig.ADMapID; | 
|             } | 
|             OnAdsInfoListUpdateEvent?.Invoke(item.ADID, mapID); | 
|         } | 
|     } | 
| } |