Procházet zdrojové kódy

多天登录的领取问题。单个id改为领取状态列表

zhangyuqian před 1 rokem
rodič
revize
1c3b7a90be

+ 34 - 0
GameClient/Assets/Game/HotUpdate/Data/ActivityDataManager.cs

@@ -107,6 +107,40 @@ namespace GFGGame
             set { _sevenDayLoginBonusStatus = value; }
         }
         /******************************************************************************************************************/
+
+
+        /**********************************************************每日登录修改*************************************************/
+        public List<int> sevenDayLoginLoginIdList = new List<int>();
+        /// <summary>
+        /// 七日登录 当日奖励id
+        /// </summary>
+        /// <value></value>
+
+        public List<int> sevenDayLoginBonusStatusList = new List<int>();
+        /// <summary>
+        /// 七日登录 当前奖励状态
+        /// </summary>
+        /// <value></value>
+        /// 
+        public bool CanGetSevenDayBonus()
+        {
+            foreach(int a in sevenDayLoginBonusStatusList)
+            {
+                if (a == 1) return true;
+            }
+            return false;
+        }
+
+        public bool AllSevenDayBonusGot()
+        {
+            foreach (int a in sevenDayLoginBonusStatusList)
+            {
+                if (a != 2) return false;
+            }
+            return true;
+        }
+        /******************************************************************************************************************/
+
         private int _firstChargeBonusStatus = 0;
         /// <summary>
         /// 首冲奖励 当前奖励状态,ConstBonusStatus 0不可领,1可领,2已领

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs

@@ -791,7 +791,7 @@ namespace GFGGame
         /// <returns></returns>
         public bool GetSevenDayLoginRed()
         {
-            return ActivityDataManager.Instance.sevenDayLoginBonusStatus == ConstBonusStatus.CAN_GET;
+            return ActivityDataManager.Instance.CanGetSevenDayBonus();
         }
         /// <summary>
         /// 福利大厅-每日签到

+ 5 - 5
GameClient/Assets/Game/HotUpdate/ServerProxy/ActivitySProxy.cs

@@ -23,14 +23,14 @@ namespace GFGGame
     {
         public static async ETTask<bool> ReqSevenDayLoginInfos()
         {
-            M2C_GetDailySignInBonusInfos response = null;
-            response = (M2C_GetDailySignInBonusInfos)await MessageHelper.SendToServer(new C2M_GetDailySignInBonusInfos());
+            M2C_GetDailySignInBonusInfoList response = null;
+            response = (M2C_GetDailySignInBonusInfoList)await MessageHelper.SendToServer(new C2M_GetDailySignInBonusInfoList());
             if (response != null)
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
-                    ActivityDataManager.Instance.sevenDayLoginLoginId = response.CuurentBonusId;
-                    ActivityDataManager.Instance.sevenDayLoginBonusStatus = response.BonusStatus;
+                    ActivityDataManager.Instance.sevenDayLoginLoginIdList = response.KsBonusId;
+                    ActivityDataManager.Instance.sevenDayLoginBonusStatusList = response.VsBonusStatus;
                     return true;
                 }
             }
@@ -44,7 +44,7 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
-                    ActivityDataManager.Instance.sevenDayLoginBonusStatus = response.BonusStatus;
+                    ActivityDataManager.Instance.sevenDayLoginBonusStatusList[response.BonusId - 1] = response.BonusStatus;
                     int[][] rewards = DailyLoginCfgArray.Instance.GetCfg(response.BonusId).rewardsArr;
 
                     BonusController.TryShowBonusList(rewards, onSuccess: () =>

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/DailyWelfare/DailyWelfareView.cs

@@ -67,7 +67,7 @@ namespace GFGGame
             _valueBarController.OnShown();
 
             _ui.m_comList.m_btnSevenDayLogin.target.visible = !(!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(SevenDayLoginView).Name, false)
-            || (ActivityDataManager.Instance.sevenDayLoginLoginId >= 7 && ActivityDataManager.Instance.sevenDayLoginBonusStatus == ConstBonusStatus.GOT));
+            || ActivityDataManager.Instance.AllSevenDayBonusGot());
 
             _limitChargeInfo = ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.XSLC);
             _ui.m_comList.m_listLimitCharge.numItems = _limitChargeInfo.Count;

+ 4 - 5
GameClient/Assets/Game/HotUpdate/Views/DailyWelfare/SevenDayLoginView.cs

@@ -55,7 +55,7 @@ namespace GFGGame
         {
             _ui.m_list.numItems = _cfgs.Count;
 
-            RedDotController.Instance.SetComRedDot(_ui.m_comIcon.target, _cfg.id == ActivityDataManager.Instance.sevenDayLoginLoginId && ActivityDataManager.Instance.sevenDayLoginBonusStatus == ConstBonusStatus.CAN_GET);
+            RedDotController.Instance.SetComRedDot(_ui.m_comIcon.target, ActivityDataManager.Instance.sevenDayLoginBonusStatusList[_cfg.id - 1] == ConstBonusStatus.CAN_GET);
         }
         protected override void OnHide()
         {
@@ -72,11 +72,10 @@ namespace GFGGame
             item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
             item.m_txtName.text = itemCfg.name;
             item.m_txtNum.text = "x" + NumberUtil.ChangeNumberUnit(cfg.rewardsArr[0][1], 10000);
-            int dailyLoginId = ActivityDataManager.Instance.sevenDayLoginLoginId;
-            item.m_imgGot.visible = cfg.id < dailyLoginId || cfg.id == dailyLoginId && ActivityDataManager.Instance.sevenDayLoginBonusStatus == ConstBonusStatus.GOT;
+            item.m_imgGot.visible = ActivityDataManager.Instance.sevenDayLoginBonusStatusList[cfg.id - 1] == ConstBonusStatus.GOT;
             // if (cfg.id == dailyLoginId)
             // {
-            RedDotController.Instance.SetComRedDot(item.target, cfg.id == dailyLoginId && ActivityDataManager.Instance.sevenDayLoginBonusStatus == ConstBonusStatus.CAN_GET);
+           RedDotController.Instance.SetComRedDot(item.target, ActivityDataManager.Instance.sevenDayLoginBonusStatusList[cfg.id - 1] == ConstBonusStatus.CAN_GET);
             // }
             if (item.target.data == null)
             {
@@ -89,7 +88,7 @@ namespace GFGGame
         {
             DailyLoginCfg cfg = (context.sender as GObject).data as DailyLoginCfg;
 
-            if (cfg.id == ActivityDataManager.Instance.sevenDayLoginLoginId && ActivityDataManager.Instance.sevenDayLoginBonusStatus == ConstBonusStatus.CAN_GET)
+            if (cfg.id < ActivityDataManager.Instance.sevenDayLoginBonusStatusList.Count && ActivityDataManager.Instance.sevenDayLoginBonusStatusList[cfg.id - 1] == ConstBonusStatus.CAN_GET)
             {
                 bool result = await ActivitySProxy.ReqSevenDayLoginRewards(cfg.id);
                 if (result)

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs

@@ -214,7 +214,7 @@ namespace GFGGame
             //if (!TimeUtil.CheckIsSameTime(lastTime * 1000, TimeHelper.ClientNow()))
             if (GameGlobal.isLogon)
             {
-                if (ActivityDataManager.Instance.sevenDayLoginBonusStatus == ConstBonusStatus.CAN_GET &&
+                if (ActivityDataManager.Instance.CanGetSevenDayBonus() &&
                     GuideDataManager.currentGuideId <= 0)
                 {
                     ViewManager.Show<SevenDayLoginView>();
@@ -805,7 +805,7 @@ namespace GFGGame
                 FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailySignView).Name, false) ||
                 FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailySupplyView).Name, false) ||
                 !(!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(SevenDayLoginView).Name, false) ||
-                (ActivityDataManager.Instance.sevenDayLoginLoginId >= 7 && ActivityDataManager.Instance.sevenDayLoginBonusStatus == ConstBonusStatus.GOT)));
+                ActivityDataManager.Instance.AllSevenDayBonusGot()));
             }
 
             _ui.m_btnActivityDay7.target.visible = ActivityDay7DataManager.Instance.CheckOpen();
@@ -961,7 +961,7 @@ namespace GFGGame
             FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailySignView).Name, false) ||
             FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailySupplyView).Name, false) ||
             !(!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(SevenDayLoginView).Name, false) ||
-            (ActivityDataManager.Instance.sevenDayLoginLoginId >= 7 && ActivityDataManager.Instance.sevenDayLoginBonusStatus == ConstBonusStatus.GOT)));
+            ActivityDataManager.Instance.AllSevenDayBonusGot()));
             _btnGongGao.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(NoticeView).Name, false);
             _btnHaoYou.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FriendView).Name, false);
             _btnYouJian.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MailView).Name, false);