Пример #1
0
        /// <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;
        }
Пример #2
0
        /// <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;
        }