lcy
21 小时以前 4edbe9209657d9012680763385930e4828fd2814
475 时机礼包-客户端 增加同时展示类型限制
1个文件已修改
47 ■■■■ 已修改文件
Main/System/TimingGift/TimingGiftManager.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TimingGift/TimingGiftManager.cs
@@ -38,7 +38,9 @@
    public int[] selectCtgIds;
    public int[][] selectGainItemList;
    public int limitPopCnt;
    public int limitShowCnt;
    public int limitPopCd;
    public event Action OnSelectCtgIdIndexChangeEvent;
    public bool isLogShow = true;
@@ -50,7 +52,8 @@
        var config = FuncConfigConfig.Get("TimingGift");
        limitPopCnt = int.Parse(config.Numerical1);
        limitPopCd = int.Parse(config.Numerical2);
        limitShowCnt = int.Parse(config.Numerical2);
        limitPopCd = int.Parse(config.Numerical3);
    }
    public override void Release()
@@ -172,7 +175,7 @@
    }
    HashSet<int> typeHashSet;
    int GetPopCnt()
    int GetShowCnt()
    {
        if (typeHashSet == null)
            typeHashSet = new HashSet<int>();
@@ -189,6 +192,24 @@
            typeHashSet.Add(config.GiftType);
        }
        return typeHashSet.Count;
    }
    int GetPopCnt()
    {
        if (lastTriggerTimeDict.IsNullOrEmpty())
            return 0;
        int cnt = 0;
        foreach (var item in lastTriggerTimeDict)
        {
            int type = item.Key;
            int time = item.Value;
            var timeData = TimeUtility.GetTime((uint)time);
            if (timeData.Day == TimeUtility.ServerNow.Day)
            {
                cnt += 1;
            }
        }
        return cnt;
    }
    bool IsInLimitCd()
@@ -234,14 +255,26 @@
#endif
            return;
        }
        int showCnt = GetShowCnt();
        int popCount = GetPopCnt();
        if (limitPopCnt <= popCount)
        if (limitShowCnt <= showCnt)
        {
#if UNITY_EDITOR
            if (isLogShow)
            {
                Debug.Log($"[TimingGift] TryPop:触发Return,今日已达到限制次数");
                Debug.Log($"[TimingGift] TryPop:触发Return,当前已达到同时展示的礼包类型数量总上限");
            }
#endif
            return;
        }
        int popCnt = GetPopCnt();
        if (limitPopCnt <= popCnt)
        {
#if UNITY_EDITOR
            if (isLogShow)
            {
                Debug.Log($"[TimingGift] TryPop:触发Return,今日已达到礼包类型触发数量总上限");
            }
#endif
            return;
@@ -270,10 +303,6 @@
#endif
            return;
        }
        bool isChange = false;
        for (int i = 0; i < giftIdList.Count; i++)