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); }
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(); } } }
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); } } } } } } } }