/// <summary> /// 登录奖励 /// </summary> /// <param name="user"></param> /// <param name="giftGold"></param> /// <returns></returns> public static bool LoginPrize(GameUser user, out int giftGold) { giftGold = 0; int giftCoin = ConfigEnvSet.GetInt("Novice.LoginPrizeGameCoin"); NoviceRestrain noviceRestrain = new PersonalCacheStruct<NoviceRestrain>().FindKey(user.UserID); if (noviceRestrain == null) { noviceRestrain = new NoviceRestrain { UserID = user.UserID }; } if (noviceRestrain.GoldNum < _loginPrizeConfig.Length) { if (DateTime.Now.Date >= noviceRestrain.ReceiveDate.AddDays(1).Date) { giftGold = _loginPrizeConfig[noviceRestrain.GoldNum].ToInt(); noviceRestrain.GoldNum += 1; noviceRestrain.ReceiveDate = DateTime.Now; if (DateTime.Now.Date >= noviceRestrain.ReceiveDate.Date) { user.GameCoin = MathUtils.Addition(user.GameCoin, giftCoin, int.MaxValue); user.ExtGold = MathUtils.Addition(user.ExtGold, giftGold, int.MaxValue); //user.Update(); } //if (new PersonalCacheStruct<NoviceRestrain>().FindKey(user.UserID) == null) //{ // noviceRestrain.Append(); //} //else //{ // noviceRestrain.Update(); //} return true; } } return false; }
/// <summary> /// 在线奖励 /// </summary> /// <param name="user"></param> /// <param name="takeNum"></param> /// <param name="coldeTime"></param> public static bool OnlinePrize(GameUser user, out int takeNum, out int coldeTime, out short onlineEnergy) { takeNum = 0; coldeTime = 0; onlineEnergy = 0; var cacheSet = new PersonalCacheStruct<NoviceRestrain>(); NoviceRestrain noviceRestrain = cacheSet.FindKey(user.UserID); if (noviceRestrain == null) { noviceRestrain = new NoviceRestrain { UserID = user.UserID }; cacheSet.Add(noviceRestrain); } if (noviceRestrain.EnergyNum < _onlinePrizeConfig.Count) { takeNum = _onlinePrizeConfig.Count - noviceRestrain.EnergyNum; KeyValuePair<string, string> keyValuePair = _onlinePrizeConfig[noviceRestrain.EnergyNum]; int onlineMinutes = keyValuePair.Key.ToInt(); onlineEnergy = keyValuePair.Value.ToShort(); if (noviceRestrain.EnergyDate == DateTime.MinValue || DateTime.Now > noviceRestrain.EnergyDate.AddMinutes(onlineMinutes)) { user.EnergyNum = MathUtils.Addition(user.EnergyNum, onlineEnergy, short.MaxValue); noviceRestrain.EnergyNum += 1; noviceRestrain.EnergyDate = DateTime.Now; //if (new PersonalCacheStruct<NoviceRestrain>().FindKey(user.UserID) == null) //{ // noviceRestrain.Append(); //} //else //{ // noviceRestrain.Update(); //} coldeTime = 0; return true; } coldeTime = (int)Math.Floor((noviceRestrain.EnergyDate.AddMinutes(onlineMinutes) - DateTime.Now).TotalSeconds); } return false; }