コード例 #1
0
ファイル: ActivityManager.cs プロジェクト: zuojiashun/src
    public void RecieveRechargeData(stRechargeRewardListPropertyUserCmd_S cmd)
    {
        if (IDS != null)
        {
            IDS.Clear();
        }
        OverIDList = cmd.data;
        //是否购买了成长基金
        IsBuy = cmd.BuyGrowGold == 1;
        //今日充值列表
        MoneyAreCost = cmd.money;
        //今日充值总额
        DayRecharge = cmd.DayAllMoney;
        //今日累积消费
        DayCost = cmd.DayAccrued_Cost;
        //累积充值总额
        AllRecharge = cmd.Recharge_num;
        //累积消费总额
        AllCost = cmd.TimeAccrued_Cost;

        //今日充值人民币
        this.m_dayAllRMB = cmd.DayAllRMB;

        //周充值
        for (int i = 0; i < cmd.Week.Count; i++)
        {
            for (int j = 0; j < this.m_lstWeekRech.Count; j++)
            {
                if (this.m_lstWeekRech[j].money == cmd.Week[i].money)
                {
                    this.m_lstWeekRech[j].times = cmd.Week[i].times;
                }
            }
        }

        //已经领取的ID
        List <RechargeCostDataBase> allList = GameTableManager.Instance.GetTableList <RechargeCostDataBase>();
        List <uint> tList1 = new List <uint>();
        List <uint> tList2 = new List <uint>();

        for (int i = 0; i < allList.Count; i++)
        {
            if (allList[i].isPutInAccumulative)
            {
                continue;
            }
            if (!OverIDList.Contains(allList[i].ID))
            {
                tList1.Add(allList[i].ID);
            }
            else
            {
                tList2.Add(allList[i].ID);
            }
        }
        if (tList1.Count > 0)
        {
            IDS.AddRange(tList1);
        }
        if (tList2.Count > 0)
        {
            IDS.AddRange(tList2);
        }

        UpdateActivityData();

        Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.RECHARGEGETREWARD, null);
    }
コード例 #2
0
ファイル: ActivityManager.cs プロジェクト: zuojiashun/src
    public void UpdateActivityData()
    {
        foreach (var it in m_dic_Activity)
        {
            uint key = it.Key;
            List <ActivityData> lstData = it.Value;
            for (int i = 0; i < lstData.Count; i++)
            {
                ActivityData data = lstData[i];
                if (OverIDList.Contains(data.id))
                {
                    data.state = ActivityState.Got;
                    continue;
                }
                if (dailyGiftList.Contains(data.id))
                {
                    data.state = ActivityState.Got;
                    continue;
                }
                bool matched = false;
                switch (data.type)
                {
                case ActivityType.GrowthFund:
                    uint lv = (uint)MainPlayerHelper.GetPlayerLevel();
                    matched      = lv >= data.total && isBuy;
                    data.process = lv;
                    break;

                case ActivityType.SingleRechargeSingleDay:
                    matched      = moneyAreCost.Contains(data.total);
                    data.process = moneyAreCost.Count != 0 ? data.total : 0;
                    break;

                case ActivityType.AllRechargeSingleDay:
                    matched      = dayRecharge >= data.total;
                    data.process = dayRecharge;
                    break;

                case ActivityType.AllCostSingleDay:
                    matched      = dayCost >= data.total;
                    data.process = dayCost;
                    break;

                case ActivityType.AllRecharge:
                    matched      = allRecharge >= data.total;
                    data.process = allRecharge;
                    break;

                case ActivityType.AllCost:
                    matched      = allCost >= data.total;
                    data.process = allCost;
                    break;
                }
                data.state = matched ? ActivityState.CanGet : ActivityState.None;
            }
            if (key != (uint)ActivityType.DailyGift)
            {
                lstData.Sort();
            }
        }
    }
コード例 #3
0
ファイル: ActivityManager.cs プロジェクト: zuojiashun/src
    void OnEvent(int eventID, object param)
    {
        if (eventID == (int)GameEventID.ENTITYSYSTEM_PROPUPDATE)
        {
            stPropUpdate prop = (stPropUpdate)param;
            if (prop.uid == MainPlayerHelper.GetPlayerUID())
            {
                int  lv   = MainPlayerHelper.GetPlayerLevel();
                uint type = (uint)ActivityType.GrowthFund;
                if (m_dic_Activity.ContainsKey(type))
                {
                    List <ActivityData> lst = m_dic_Activity[type];
                    for (int i = 0; i < lst.Count; i++)
                    {
                        ActivityData data = lst[i];
                        if (OverIDList.Contains(data.id))
                        {
                            data.state = ActivityState.Got;
                            continue;
                        }
                        if (dailyGiftList.Contains(data.id))
                        {
                            data.state = ActivityState.Got;
                            continue;
                        }

                        data.process = (uint)lv;
                        data.state   = (lv >= data.total && isBuy) ? ActivityState.CanGet : ActivityState.None;
                    }
                    if (type != (uint)ActivityType.DailyGift)
                    {
                        lst.Sort();
                    }
                }
            }
        }
        else if (eventID == (int)GameEventID.SYSTEM_GAME_READY)
        {
            if (lstActivityTabData != null)
            {
                for (int i = 0; i < lstActivityTabData.Count; i++)
                {
                    uint schedule = lstActivityTabData[i].scheduleID;
                    uint type     = lstActivityTabData[i].type;
                    if (schedule != 0)
                    {
                        if (m_dic_Activity.ContainsKey(type))
                        {
                            if (!DataManager.Manager <DailyManager>().InSchedule(schedule))
                            {
                                m_dic_Activity.Remove(type);
                                if (m_lstType.Contains((ActivityType)type))
                                {
                                    m_lstType.Remove((ActivityType)type);
                                }
                                if (m_dicTabData.ContainsKey(type))
                                {
                                    m_dicTabData.Remove(type);
                                }
                            }
                        }
                    }
                }
            }
        }
    }