| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Tuesday, March 06, 2018 |
| | | //-------------------------------------------------------- |
| | | //七天在线奖励 |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using TableConfig; |
| | | using Snxxz.UI; |
| | | using System.Linq; |
| | | |
| | | public class OnlineRewardsModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk |
| | | { |
| | | public class OnlineRewardsClass |
| | | { |
| | | public int RewardID; |
| | | public int[] TimeMinute; |
| | | public ImpactRankModel.RankAwardItem RankAwardItem;//阶段奖励数据 |
| | | } |
| | | public Dictionary<int, OnlineRewardsClass> OnlineRewards = new Dictionary<int, OnlineRewardsClass>();//在线累计奖励信息 |
| | | public Dictionary<int, Dictionary<int, int>> AcceptDrizeAllDic = new Dictionary<int, Dictionary<int, int>>();//领奖记录 |
| | | |
| | | public uint CumulativeTime;//获取累计登入时间 |
| | | public DateTime DateTime;//获取时间 |
| | | public int GetMaximumDuration;//获取最长领取时间 |
| | | public static event Action OnlineRewardsUpdate; |
| | | private const int Redpoint_key1 = 20901;//七天累计登录红点 |
| | | private Redpoint redPointStre1 = new Redpoint(209, Redpoint_key1); |
| | | public Redpoint onlineRedpoint { get { return redPointStre1; } } |
| | | private List<int> OnlineRewardsTimeList = new List<int>();//每天奖励情况 |
| | | private bool IsRedPointBool = false; |
| | | public int onlineRewardsCloseDay { get; private set; } |
| | | public bool IsOk = false; |
| | | public override void Init() |
| | | { |
| | | return;//------------------- |
| | | var _cfg = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("SevenOnlineReaward"); |
| | | onlineRewardsCloseDay = int.Parse(_cfg.Numerical1); |
| | | GetMaximumDuration = int.Parse(_cfg.Numerical1); |
| | | |
| | | |
| | | } |
| | | |
| | | public void OnBeforePlayerDataInitialize() |
| | | { |
| | | return;//------------------- |
| | | IsOk = false; |
| | | CumulativeTime = 0; |
| | | //AcceptDrizeAllDic.Clear(); |
| | | } |
| | | |
| | | public void OnPlayerLoginOk() |
| | | { |
| | | return;//------------------- |
| | | TimeUtility.OnServerOpenDayRefresh -= OnStepServerDay; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; |
| | | GlobalTimeEvent.Instance.secondEvent -= secondEvent; |
| | | TimeUtility.OnServerOpenDayRefresh += OnStepServerDay; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; |
| | | GlobalTimeEvent.Instance.secondEvent += secondEvent; |
| | | IsOk = true; |
| | | //OnlineRewards.Clear(); |
| | | //AcceptDrizeAllDic.Clear(); |
| | | DateTime = DateTime.Now; |
| | | IsOkAward(); |
| | | DataReading(); |
| | | for (int i = 0; i < OnlineRewardsTimeList.Count; i++) |
| | | { |
| | | ISAwardInfo(CumulativeTime, OnlineRewardsTimeList[i], i + 1); |
| | | } |
| | | IsRedPointBool = true; |
| | | OnlineRewardsPoint(); |
| | | |
| | | if (WindowCenter.Instance.CheckOpen<OnlineRewardsWin>() && OnlineRewardsUpdate != null) |
| | | { |
| | | OnlineRewardsUpdate(); |
| | | } |
| | | } |
| | | |
| | | |
| | | private void IsOkAward() |
| | | { |
| | | if (AcceptDrizeAllDic.Count != 0) |
| | | { |
| | | foreach (var key in AcceptDrizeAllDic.Keys) |
| | | { |
| | | Dictionary<int, int> dic = AcceptDrizeAllDic[key]; |
| | | foreach (var key1 in dic.Keys) |
| | | { |
| | | dic[key1] = -1; |
| | | } |
| | | AcceptDrizeAllDic[key] = dic; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | private void secondEvent() |
| | | { |
| | | TimeSpan date = DateTime.Now - DateTime; |
| | | date = date.Add(new TimeSpan(TimeSpan.TicksPerMillisecond * CumulativeTime)); |
| | | |
| | | if (TimeUtility.CreateDays <= onlineRewardsCloseDay && date.TotalHours < GetMaximumDuration) |
| | | { |
| | | if (!AcceptDrizeAllDic.ContainsKey(TimeUtility.CreateDays)) |
| | | { |
| | | return; |
| | | } |
| | | Dictionary<int, int> dic = AcceptDrizeAllDic[TimeUtility.CreateDays]; |
| | | var keys = new List<int>(dic.Keys); |
| | | |
| | | foreach (var key in keys) |
| | | { |
| | | if (dic.Count != 0) |
| | | { |
| | | if (date.TotalMinutes >= key && dic[key] == -1) |
| | | { |
| | | AcceptDrizeAllDic[TimeUtility.CreateDays][key] = 0; |
| | | OnlineRewardsPoint(); |
| | | if (OnlineRewardsUpdate != null) |
| | | { |
| | | OnlineRewardsUpdate(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public override void UnInit() |
| | | { |
| | | |
| | | |
| | | |
| | | IsRedPointBool = false; |
| | | } |
| | | |
| | | private void OnFuncStateChangeEvent(int obj) |
| | | { |
| | | if (obj == 125) |
| | | { |
| | | OnlineRewardsPoint(); |
| | | } |
| | | } |
| | | |
| | | private void OnlineRewardsEvent() |
| | | { |
| | | OnlineRewardsPoint(); |
| | | } |
| | | private void OnlineRewardsPoint()//七天累计登录红点 |
| | | { |
| | | return;//------------------- |
| | | if (!IsOk) |
| | | { |
| | | return; |
| | | } |
| | | redPointStre1.state = RedPointState.None; |
| | | if (!FuncOpen.Instance.IsFuncOpen(125)) |
| | | { |
| | | return; |
| | | } |
| | | bool Bool = false; |
| | | |
| | | if (AcceptDrizeAllDic.Count == 0 || TimeUtility.CreateDays >= onlineRewardsCloseDay || TimeUtility.CreateDays <= 0) |
| | | { |
| | | return; |
| | | } |
| | | Dictionary<int, int> Dic = AcceptDrizeAllDic[TimeUtility.CreateDays]; |
| | | foreach (var key in Dic.Keys) |
| | | { |
| | | if (Dic[key] == 0) |
| | | { |
| | | Bool = true; |
| | | } |
| | | } |
| | | if (Bool) |
| | | { |
| | | redPointStre1.state = RedPointState.Simple; |
| | | } |
| | | } |
| | | private void OnStepServerDay() |
| | | { |
| | | if (TimeUtility.CreateDays <= onlineRewardsCloseDay) |
| | | { |
| | | DateTime = DateTime.Now; |
| | | } |
| | | for (int i = 0; i < OnlineRewardsTimeList.Count; i++) |
| | | { |
| | | ISAwardInfo(CumulativeTime, OnlineRewardsTimeList[i], i + 1); |
| | | } |
| | | IsRedPointBool = true; |
| | | OnlineRewardsPoint(); |
| | | } |
| | | |
| | | private void DataReading() |
| | | { |
| | | if (OnlineRewards.Count != 0) |
| | | { |
| | | return; |
| | | } |
| | | var OnlineRewardConfig = ConfigManager.Instance.GetAllValues<OnlineAwardConfig>(); |
| | | foreach (var value in OnlineRewardConfig) |
| | | { |
| | | if (!OnlineRewards.ContainsKey(value.RewardID)) |
| | | { |
| | | OnlineRewardsClass onlineRewardsClass = new OnlineRewardsClass(); |
| | | onlineRewardsClass.RewardID = value.RewardID; |
| | | onlineRewardsClass.TimeMinute = value.Time; |
| | | if (!AcceptDrizeAllDic.ContainsKey(value.RewardID)) |
| | | { |
| | | Dictionary<int, int> _Dic = new Dictionary<int, int>(); |
| | | for (int i = 0; i < value.Time.Length; i++) |
| | | { |
| | | _Dic.Add(value.Time[i], -1); |
| | | |
| | | } |
| | | AcceptDrizeAllDic.Add(value.RewardID, _Dic); |
| | | |
| | | } |
| | | ImpactRankModel.RankAwardItem _award = new ImpactRankModel.RankAwardItem(); |
| | | var _jsonData = LitJson.JsonMapper.ToObject(value.Reward); |
| | | foreach (string key in _jsonData.Keys) |
| | | { |
| | | var time = int.Parse(key); |
| | | var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(_jsonData[key].ToJson()); |
| | | for (int j = 0; j < _itemArray.Length; j++) |
| | | { |
| | | _award.Add(time, new AwardItem() |
| | | { |
| | | item = new Item(_itemArray[j][0], _itemArray[j][1]), |
| | | isBind = 1, |
| | | }); |
| | | } |
| | | |
| | | } |
| | | onlineRewardsClass.RankAwardItem = _award; |
| | | OnlineRewards.Add(value.RewardID, onlineRewardsClass); |
| | | } |
| | | } |
| | | } |
| | | public void SendReceiveAward(int Index)//发送领取奖励 |
| | | { |
| | | CA506_tagCMGetOnlinePrize CA506 = new CA506_tagCMGetOnlinePrize(); |
| | | CA506.Index = (byte)Index; |
| | | GameNetSystem.Instance.SendInfo(CA506); |
| | | } |
| | | |
| | | public void GetMCOnlinePrize(uint onlineTime, uint[] prizeInfo)//获取在想奖励 |
| | | { |
| | | return;//------------------- |
| | | CumulativeTime = onlineTime; |
| | | DateTime = DateTime.Now; |
| | | OnlineRewardsTimeList.Clear(); |
| | | for (int i = 0; i < prizeInfo.Length; i++) |
| | | { |
| | | OnlineRewardsTimeList.Add((int)prizeInfo[i]); |
| | | } |
| | | if (onlineTime <= 0) |
| | | { |
| | | ISOpenDayCler(); |
| | | } |
| | | if (IsRedPointBool) |
| | | { |
| | | for (int i = 0; i < OnlineRewardsTimeList.Count; i++) |
| | | { |
| | | ISAwardInfo(CumulativeTime, OnlineRewardsTimeList[i], i + 1); |
| | | } |
| | | OnlineRewardsPoint(); |
| | | } |
| | | if (OnlineRewardsUpdate != null && IsOk) |
| | | { |
| | | OnlineRewardsUpdate(); |
| | | } |
| | | } |
| | | |
| | | private void ISOpenDayCler() |
| | | { |
| | | foreach (var value in OnlineRewards.Values) |
| | | { |
| | | if (!AcceptDrizeAllDic.ContainsKey(value.RewardID)) |
| | | { |
| | | |
| | | Dictionary<int, int> _Dic = new Dictionary<int, int>(); |
| | | for (int i = 0; i < value.TimeMinute.Length; i++) |
| | | { |
| | | _Dic.Add(value.TimeMinute[i], -1); |
| | | |
| | | } |
| | | AcceptDrizeAllDic.Add(value.RewardID, _Dic); |
| | | } |
| | | else |
| | | { |
| | | Dictionary<int, int> _Dic = new Dictionary<int, int>(); |
| | | for (int i = 0; i < value.TimeMinute.Length; i++) |
| | | { |
| | | _Dic.Add(value.TimeMinute[i], -1); |
| | | |
| | | } |
| | | AcceptDrizeAllDic[value.RewardID] = _Dic; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | private void ISAwardInfo(uint onlineTime, int awardInfo, int Day) |
| | | { |
| | | TimeSpan date = new TimeSpan(TimeSpan.TicksPerMillisecond * onlineTime); |
| | | int type = int.Parse(System.Convert.ToString(awardInfo, 2)); |
| | | string typeStr = string.Empty; |
| | | if (type == 0) |
| | | { |
| | | typeStr = "0"; |
| | | } |
| | | else |
| | | { |
| | | while (type != 0) |
| | | { |
| | | typeStr += type % 10; |
| | | type = type / 10; |
| | | } |
| | | } |
| | | if (!AcceptDrizeAllDic.ContainsKey(Day)) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (TimeUtility.CreateDays <= onlineRewardsCloseDay && Day <= TimeUtility.CreateDays) |
| | | { |
| | | var keysList = AcceptDrizeAllDic[Day].Keys.ToList(); |
| | | int NeedTimeMinute = keysList[keysList.Count - 1]; |
| | | if (date.TotalMinutes >= NeedTimeMinute) |
| | | { |
| | | int Typei = -1; |
| | | var keys = AcceptDrizeAllDic[Day].Keys.ToList(); |
| | | for (int i = 0; i < keys.Count; i++) |
| | | { |
| | | Typei += 1; |
| | | if (Typei < typeStr.Length) |
| | | { |
| | | AcceptDrizeAllDic[Day][(keys[i])] = int.Parse(typeStr[Typei].ToString()); |
| | | } |
| | | else |
| | | { |
| | | AcceptDrizeAllDic[Day][(keys[i])] = 0; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (int.Parse(typeStr) != 0) |
| | | { |
| | | int Typei = -1; |
| | | var keys = AcceptDrizeAllDic[Day].Keys.ToList(); |
| | | for (int i = 0; i < keys.Count; i++) |
| | | { |
| | | Typei += 1; |
| | | if (Typei < typeStr.Length) |
| | | { |
| | | AcceptDrizeAllDic[Day][(keys[i])] = int.Parse(typeStr[Typei].ToString()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Tuesday, March 06, 2018
|
| | | //--------------------------------------------------------
|
| | | //七天在线奖励
|
| | | using System;
|
| | | using System.Collections.Generic;
|
| | | using TableConfig;
|
| | | using Snxxz.UI;
|
| | | using System.Linq;
|
| | |
|
| | | public class OnlineRewardsModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
|
| | | {
|
| | | public class OnlineRewardsClass
|
| | | {
|
| | | public int RewardID;
|
| | | public int[] TimeMinute;
|
| | | public ImpactRankModel.RankAwardItem RankAwardItem;//阶段奖励数据
|
| | | }
|
| | | public Dictionary<int, OnlineRewardsClass> OnlineRewards = new Dictionary<int, OnlineRewardsClass>();//在线累计奖励信息
|
| | | public Dictionary<int, Dictionary<int, int>> AcceptDrizeAllDic = new Dictionary<int, Dictionary<int, int>>();//领奖记录
|
| | |
|
| | | public uint CumulativeTime;//获取累计登入时间
|
| | | public DateTime DateTime;//获取时间
|
| | | public int GetMaximumDuration;//获取最长领取时间
|
| | | public static event Action OnlineRewardsUpdate;
|
| | | private const int Redpoint_key1 = 20901;//七天累计登录红点
|
| | | private Redpoint redPointStre1 = new Redpoint(209, Redpoint_key1);
|
| | | public Redpoint onlineRedpoint { get { return redPointStre1; } }
|
| | | private List<int> OnlineRewardsTimeList = new List<int>();//每天奖励情况
|
| | | private bool IsRedPointBool = false;
|
| | | public int onlineRewardsCloseDay { get; private set; }
|
| | | public bool IsOk = false;
|
| | | public override void Init()
|
| | | {
|
| | | return;//-------------------
|
| | | var _cfg = Config.Instance.Get<FuncConfigConfig>("SevenOnlineReaward");
|
| | | onlineRewardsCloseDay = int.Parse(_cfg.Numerical1);
|
| | | GetMaximumDuration = int.Parse(_cfg.Numerical1);
|
| | |
|
| | | |
| | | }
|
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | return;//-------------------
|
| | | IsOk = false;
|
| | | CumulativeTime = 0;
|
| | | //AcceptDrizeAllDic.Clear();
|
| | | }
|
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | return;//-------------------
|
| | | TimeUtility.OnServerOpenDayRefresh -= OnStepServerDay;
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
|
| | | GlobalTimeEvent.Instance.secondEvent -= secondEvent;
|
| | | TimeUtility.OnServerOpenDayRefresh += OnStepServerDay;
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
|
| | | GlobalTimeEvent.Instance.secondEvent += secondEvent;
|
| | | IsOk = true;
|
| | | //OnlineRewards.Clear();
|
| | | //AcceptDrizeAllDic.Clear();
|
| | | DateTime = DateTime.Now;
|
| | | IsOkAward();
|
| | | DataReading();
|
| | | for (int i = 0; i < OnlineRewardsTimeList.Count; i++)
|
| | | {
|
| | | ISAwardInfo(CumulativeTime, OnlineRewardsTimeList[i], i + 1);
|
| | | }
|
| | | IsRedPointBool = true;
|
| | | OnlineRewardsPoint();
|
| | | |
| | | if (WindowCenter.Instance.CheckOpen<OnlineRewardsWin>() && OnlineRewardsUpdate != null)
|
| | | {
|
| | | OnlineRewardsUpdate();
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | private void IsOkAward()
|
| | | {
|
| | | if (AcceptDrizeAllDic.Count != 0)
|
| | | {
|
| | | foreach (var key in AcceptDrizeAllDic.Keys)
|
| | | {
|
| | | Dictionary<int, int> dic = AcceptDrizeAllDic[key];
|
| | | foreach (var key1 in dic.Keys)
|
| | | {
|
| | | dic[key1] = -1;
|
| | | }
|
| | | AcceptDrizeAllDic[key] = dic;
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | private void secondEvent()
|
| | | {
|
| | | TimeSpan date = DateTime.Now - DateTime;
|
| | | date = date.Add(new TimeSpan(TimeSpan.TicksPerMillisecond * CumulativeTime));
|
| | |
|
| | | if (TimeUtility.CreateDays <= onlineRewardsCloseDay && date.TotalHours < GetMaximumDuration)
|
| | | {
|
| | | if (!AcceptDrizeAllDic.ContainsKey(TimeUtility.CreateDays))
|
| | | {
|
| | | return;
|
| | | }
|
| | | Dictionary<int, int> dic = AcceptDrizeAllDic[TimeUtility.CreateDays];
|
| | | var keys = new List<int>(dic.Keys);
|
| | |
|
| | | foreach (var key in keys)
|
| | | {
|
| | | if (dic.Count != 0)
|
| | | {
|
| | | if (date.TotalMinutes >= key && dic[key] == -1)
|
| | | {
|
| | | AcceptDrizeAllDic[TimeUtility.CreateDays][key] = 0;
|
| | | OnlineRewardsPoint();
|
| | | if (OnlineRewardsUpdate != null)
|
| | | {
|
| | | OnlineRewardsUpdate();
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public override void UnInit()
|
| | | {
|
| | |
|
| | |
|
| | |
|
| | | IsRedPointBool = false;
|
| | | }
|
| | |
|
| | | private void OnFuncStateChangeEvent(int obj)
|
| | | {
|
| | | if (obj == 125)
|
| | | {
|
| | | OnlineRewardsPoint();
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnlineRewardsEvent()
|
| | | {
|
| | | OnlineRewardsPoint();
|
| | | }
|
| | | private void OnlineRewardsPoint()//七天累计登录红点
|
| | | {
|
| | | return;//-------------------
|
| | | if (!IsOk)
|
| | | {
|
| | | return;
|
| | | }
|
| | | redPointStre1.state = RedPointState.None;
|
| | | if (!FuncOpen.Instance.IsFuncOpen(125))
|
| | | {
|
| | | return;
|
| | | }
|
| | | bool Bool = false;
|
| | |
|
| | | if (AcceptDrizeAllDic.Count == 0 || TimeUtility.CreateDays >= onlineRewardsCloseDay || TimeUtility.CreateDays <= 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | | Dictionary<int, int> Dic = AcceptDrizeAllDic[TimeUtility.CreateDays];
|
| | | foreach (var key in Dic.Keys)
|
| | | {
|
| | | if (Dic[key] == 0)
|
| | | {
|
| | | Bool = true;
|
| | | }
|
| | | }
|
| | | if (Bool)
|
| | | {
|
| | | redPointStre1.state = RedPointState.Simple;
|
| | | }
|
| | | }
|
| | | private void OnStepServerDay()
|
| | | {
|
| | | if (TimeUtility.CreateDays <= onlineRewardsCloseDay)
|
| | | {
|
| | | DateTime = DateTime.Now;
|
| | | }
|
| | | for (int i = 0; i < OnlineRewardsTimeList.Count; i++)
|
| | | {
|
| | | ISAwardInfo(CumulativeTime, OnlineRewardsTimeList[i], i + 1);
|
| | | }
|
| | | IsRedPointBool = true;
|
| | | OnlineRewardsPoint();
|
| | | }
|
| | |
|
| | | private void DataReading()
|
| | | {
|
| | | if (OnlineRewards.Count != 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | | var OnlineRewardConfig = Config.Instance.GetAllValues<OnlineAwardConfig>();
|
| | | foreach (var value in OnlineRewardConfig)
|
| | | {
|
| | | if (!OnlineRewards.ContainsKey(value.RewardID))
|
| | | {
|
| | | OnlineRewardsClass onlineRewardsClass = new OnlineRewardsClass();
|
| | | onlineRewardsClass.RewardID = value.RewardID;
|
| | | onlineRewardsClass.TimeMinute = value.Time;
|
| | | if (!AcceptDrizeAllDic.ContainsKey(value.RewardID))
|
| | | {
|
| | | Dictionary<int, int> _Dic = new Dictionary<int, int>();
|
| | | for (int i = 0; i < value.Time.Length; i++)
|
| | | {
|
| | | _Dic.Add(value.Time[i], -1);
|
| | |
|
| | | }
|
| | | AcceptDrizeAllDic.Add(value.RewardID, _Dic);
|
| | |
|
| | | }
|
| | | ImpactRankModel.RankAwardItem _award = new ImpactRankModel.RankAwardItem();
|
| | | var _jsonData = LitJson.JsonMapper.ToObject(value.Reward);
|
| | | foreach (string key in _jsonData.Keys)
|
| | | {
|
| | | var time = int.Parse(key);
|
| | | var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(_jsonData[key].ToJson());
|
| | | for (int j = 0; j < _itemArray.Length; j++)
|
| | | {
|
| | | _award.Add(time, new AwardItem()
|
| | | {
|
| | | item = new Item(_itemArray[j][0], _itemArray[j][1]),
|
| | | isBind = 1,
|
| | | });
|
| | | }
|
| | |
|
| | | }
|
| | | onlineRewardsClass.RankAwardItem = _award;
|
| | | OnlineRewards.Add(value.RewardID, onlineRewardsClass);
|
| | | }
|
| | | }
|
| | | }
|
| | | public void SendReceiveAward(int Index)//发送领取奖励
|
| | | {
|
| | | CA506_tagCMGetOnlinePrize CA506 = new CA506_tagCMGetOnlinePrize();
|
| | | CA506.Index = (byte)Index;
|
| | | GameNetSystem.Instance.SendInfo(CA506);
|
| | | }
|
| | |
|
| | | public void GetMCOnlinePrize(uint onlineTime, uint[] prizeInfo)//获取在想奖励
|
| | | {
|
| | | return;//-------------------
|
| | | CumulativeTime = onlineTime;
|
| | | DateTime = DateTime.Now;
|
| | | OnlineRewardsTimeList.Clear();
|
| | | for (int i = 0; i < prizeInfo.Length; i++)
|
| | | {
|
| | | OnlineRewardsTimeList.Add((int)prizeInfo[i]);
|
| | | }
|
| | | if (onlineTime <= 0)
|
| | | {
|
| | | ISOpenDayCler();
|
| | | }
|
| | | if (IsRedPointBool)
|
| | | {
|
| | | for (int i = 0; i < OnlineRewardsTimeList.Count; i++)
|
| | | {
|
| | | ISAwardInfo(CumulativeTime, OnlineRewardsTimeList[i], i + 1);
|
| | | }
|
| | | OnlineRewardsPoint();
|
| | | }
|
| | | if (OnlineRewardsUpdate != null && IsOk)
|
| | | {
|
| | | OnlineRewardsUpdate();
|
| | | }
|
| | | }
|
| | |
|
| | | private void ISOpenDayCler()
|
| | | {
|
| | | foreach (var value in OnlineRewards.Values)
|
| | | {
|
| | | if (!AcceptDrizeAllDic.ContainsKey(value.RewardID))
|
| | | {
|
| | |
|
| | | Dictionary<int, int> _Dic = new Dictionary<int, int>();
|
| | | for (int i = 0; i < value.TimeMinute.Length; i++)
|
| | | {
|
| | | _Dic.Add(value.TimeMinute[i], -1);
|
| | |
|
| | | }
|
| | | AcceptDrizeAllDic.Add(value.RewardID, _Dic);
|
| | | }
|
| | | else
|
| | | {
|
| | | Dictionary<int, int> _Dic = new Dictionary<int, int>();
|
| | | for (int i = 0; i < value.TimeMinute.Length; i++)
|
| | | {
|
| | | _Dic.Add(value.TimeMinute[i], -1);
|
| | |
|
| | | }
|
| | | AcceptDrizeAllDic[value.RewardID] = _Dic;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | private void ISAwardInfo(uint onlineTime, int awardInfo, int Day)
|
| | | {
|
| | | TimeSpan date = new TimeSpan(TimeSpan.TicksPerMillisecond * onlineTime);
|
| | | int type = int.Parse(System.Convert.ToString(awardInfo, 2));
|
| | | string typeStr = string.Empty;
|
| | | if (type == 0)
|
| | | {
|
| | | typeStr = "0";
|
| | | }
|
| | | else
|
| | | {
|
| | | while (type != 0)
|
| | | {
|
| | | typeStr += type % 10;
|
| | | type = type / 10;
|
| | | }
|
| | | }
|
| | | if (!AcceptDrizeAllDic.ContainsKey(Day))
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (TimeUtility.CreateDays <= onlineRewardsCloseDay && Day <= TimeUtility.CreateDays)
|
| | | {
|
| | | var keysList = AcceptDrizeAllDic[Day].Keys.ToList();
|
| | | int NeedTimeMinute = keysList[keysList.Count - 1];
|
| | | if (date.TotalMinutes >= NeedTimeMinute)
|
| | | {
|
| | | int Typei = -1;
|
| | | var keys = AcceptDrizeAllDic[Day].Keys.ToList();
|
| | | for (int i = 0; i < keys.Count; i++)
|
| | | {
|
| | | Typei += 1;
|
| | | if (Typei < typeStr.Length)
|
| | | {
|
| | | AcceptDrizeAllDic[Day][(keys[i])] = int.Parse(typeStr[Typei].ToString());
|
| | | }
|
| | | else
|
| | | {
|
| | | AcceptDrizeAllDic[Day][(keys[i])] = 0;
|
| | | }
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | if (int.Parse(typeStr) != 0)
|
| | | {
|
| | | int Typei = -1;
|
| | | var keys = AcceptDrizeAllDic[Day].Keys.ToList();
|
| | | for (int i = 0; i < keys.Count; i++)
|
| | | {
|
| | | Typei += 1;
|
| | | if (Typei < typeStr.Length)
|
| | | {
|
| | | AcceptDrizeAllDic[Day][(keys[i])] = int.Parse(typeStr[Typei].ToString());
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|