Пример #1
0
        public static int GetOpenGoldNum(int enableNum, int userGridNum)
        {
            int latticeSpar = 0; //开启每个格子的价格
            int Sum = 0;
            int Sub = 0;
            int minGridNum = new GameUser().SparePartMinGridNum;
            int subGridNum = MathUtils.Subtraction(enableNum, minGridNum, 0);

            int minusNum = MathUtils.Subtraction(userGridNum, minGridNum, 0);
            for (int i = 1; i <= subGridNum; i++)
            {
                if (i == 0) latticeSpar = 0;
                if (i == 1) latticeSpar = 2;
                if (i >= 2) latticeSpar = i * 2;
                Sum += latticeSpar;
            }

            for (int j = 0; j <= minusNum; j++)
            {
                if (j == 0) latticeSpar = 0;
                if (j == 1) latticeSpar = 2;
                if (j >= 2) latticeSpar = j * 2;
                Sub += latticeSpar;
            }
            return MathUtils.Subtraction(Sum, Sub, 0);
        }
Пример #2
0
        /// <summary>
        /// 天地劫副本关数
        /// </summary>
        /// <param name="user"></param>
        public static int CheckUserPlotHurdleNum(GameUser user)
        {
            int hurdleNum = 0;
            PlotInfo plotInfo = CheckUserPlotKalpa(user);
            if (plotInfo != null)
            {
                UserDailyRestrain dailyRestrain = new GameDataCacheSet<UserDailyRestrain>().FindKey(user.UserID);
                if (dailyRestrain != null && dailyRestrain.UserExtend != null && dailyRestrain.UserExtend.KalpaDate.Date == DateTime.Now.Date)
                {
                    hurdleNum = user.UserExtend.HurdleNum;
                }
                else
                {
                    hurdleNum = plotInfo.PlotSeqNo;

                    if (user.UserExtend != null && hurdleNum > 0)
                    {
                        user.UserExtend.UpdateNotify(obj =>
                            {
                                user.UserExtend.HurdleNum = hurdleNum;
                                return true;
                            });
                        //user.Update();
                    }
                }
            }
            else
            {
                hurdleNum = 1;
            }
            return hurdleNum;
        }
Пример #3
0
        //判断背包是否已满
        public static bool IsBeiBaoFull(GameUser user, int itembaseId)
        {
            ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(itembaseId);
            if (itemInfo != null)
            {
                var package = UserItemPackage.Get(user.UserID);

                //查找出所有已用的格子
                var userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao);

                //查找出已用格子中是相同物品格子的数量
                var itemmountArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao && m.ItemID == itembaseId);

                int totalNum = 0;
                //累加所有的该物品的数量
                foreach (UserItemInfo userItemInfo in itemmountArray)
                {
                    totalNum = MathUtils.Addition(totalNum, userItemInfo.Num);
                }
                //是否有空余位置
                int mount = totalNum % itemInfo.PackMaxNum;

                if (userItemArray.Count >= user.GridNum && mount == 0)
                {
                    return true;
                }
            }
            return false;
        }
Пример #4
0
 public static void AddExprerience(GameUser user, int experience)
 {
     string userID = user.UserID;
     var userEmbattleList = new GameDataCacheSet<UserEmbattle>().FindAll(userID, m => m.MagicID == user.UseMagicID);
     HashSet<int> generalHash = new HashSet<int>();
     foreach (UserEmbattle userEmbattle in userEmbattleList)
     {
         //wuzf 8-18 修复多个相同佣兵阵形数据
         if (generalHash.Contains(userEmbattle.GeneralID))
         {
             userEmbattle.GeneralID = 0;
             //userEmbattle.Update();
             continue;
         }
         else
         {
             generalHash.Add(userEmbattle.GeneralID);
         }
         //UserGeneral userGeneral = new GameDataCacheSet<UserGeneral>().FindKey(userID, userEmbattle.GeneralID);
         //if (userGeneral != null)
         //{
         //    userGeneral.CurrExperience = MathUtils.Addition(userGeneral.CurrExperience, experience);
         //}
     }
     //UserHelper.UserGeneralExp(user.UserID, experience);
 }
Пример #5
0
        /// <summary>
        /// 竞技场每日奖励
        /// </summary>
        /// <param name="user"></param>
        public static void DailySportsRankPrize(GameUser user)
        {
            UserDailyRestrain dailyRestrain = new GameDataCacheSet<UserDailyRestrain>().FindKey(user.UserID);
            if (IsGainSportsReward(user.UserID) && dailyRestrain != null && dailyRestrain.UserExtend != null)
            {
                //var envSet = ServerEnvSet.Get(ServerEnvKey.JingJiChangReward, "");
                SportsRewardInfo sportsInfo = new ConfigCacheSet<SportsRewardInfo>().FindKey(dailyRestrain.UserExtend.UserRankID);
                //if (envSet != null && sportsInfo != null && envSet.ToDateTime().Date > dailyRestrain.Funtion11.Date &&
                // dailyRestrain.UserExtend.UserRankID > 0)
                if (sportsInfo != null && DateTime.Now.Date != dailyRestrain.Funtion11.Date &&
                 dailyRestrain.UserExtend.UserRankID > 0)
                {
                    dailyRestrain.Funtion11 = DateTime.Now;
                    dailyRestrain.UserExtend.UserRankID = 0;

                    user.SportsIntegral = MathUtils.Addition(user.SportsIntegral, sportsInfo.RewardObtian,
                                                             int.MaxValue);
                    user.GameCoin = MathUtils.Addition(user.GameCoin, sportsInfo.RewardGoin, int.MaxValue);
                    string sportContent = string.Format(LanguageManager.GetLang().St5106_JingJiChangRankReward,
                                                        sportsInfo.RewardObtian, sportsInfo.RewardGoin);
                    var chatService = new TjxChatService();
                    chatService.SystemSendWhisper(user, sportContent);
                }
            }
        }
Пример #6
0
 /// <summary>
 /// 排行榜公告
 /// </summary>
 public static void RankNotice(GameUser user)
 {
     RankLvNotice(user);
     RankObtionNotice(user);
     RankCoinNotice(user);
     RankCombatNumNotice(user);
 }
Пример #7
0
 /// <summary>
 /// 父亲节奖励
 /// </summary>
 public static void FathersDay(GameUser user)
 {
     short energyNum = 30;
     int obtainNum = 50;
     int gameGoin = 20000;
     string fatherTime = "2012-06-17 00:00:00";
     DateTime fatherDate = DateTime.Parse(fatherTime);
     UserDailyRestrain dailyRestrain = new GameDataCacheSet<UserDailyRestrain>().FindKey(user.UserID);
     if (dailyRestrain != null && dailyRestrain.Funtion13 < 1)
     {
         if (DateTime.Now.Date == fatherDate.Date)
         {
             dailyRestrain.Funtion13 = 1;
             //dailyRestrain.Update();
             user.EnergyNum = MathUtils.Addition(user.EnergyNum, energyNum, short.MaxValue);
             user.ObtainNum = MathUtils.Addition(user.ObtainNum, obtainNum, int.MaxValue);
             user.GameCoin = MathUtils.Addition(user.GameCoin, gameGoin, int.MaxValue);
             //user.Update();
             string content = string.Format(LanguageManager.GetLang().St_FathersDay,
                                            energyNum, obtainNum,
                                            gameGoin);
             new TjxChatService().SystemSendWhisper(user, content);
         }
     }
 }
Пример #8
0
 public override bool TakeAction()
 {
     _gameUser = new GameDataCacheSet<GameUser>().FindKey(ContextUser.UserID);
     _cityInfoArray = new ConfigCacheSet<CityInfo>().FindAll(c => c.CityType == 0 &&
         c.MinLv <= _gameUser.UserLv &&
         ((int)c.CountryID == 0 || c.CountryID == ContextUser.CountryID));
     return true;
 }
Пример #9
0
 /// <summary>
 /// 考古战役
 /// </summary>
 /// <param name="user"></param>
 /// <param name="plotNpcID"></param>
 /// <returns></returns>
 public static ISingleCombat TriggerArchaeologyPlot(GameUser user, int plotNpcID)
 {
     ICombatController controller = new TjxCombatController();
     ISingleCombat plotCombater = controller.GetSingleCombat(CombatType.KaoGuPlot);
     plotCombater.SetAttack(new UserEmbattleQueue(user.UserID, user.UseMagicID));
     plotCombater.SetDefend(new MonsterQueue(plotNpcID));
     return plotCombater;
 }
Пример #10
0
 /// <summary>
 /// 圣吉塔战役
 /// </summary>
 /// <param name="user"></param>
 /// <param name="plotNpcID"></param>
 /// <returns></returns>
 public static ISingleCombat TriggerSJTPlot(GameUser user, int plotNpcID, double difficultNum)
 {
     ICombatController controller = new TjxCombatController();
     ISingleCombat plotCombater = controller.GetSingleCombat(CombatType.ShengJiTa);
     plotCombater.SetAttack(new UserEmbattleQueue(user.UserID, user.UseMagicID));
     plotCombater.SetDefend(new MonsterQueue(plotNpcID, difficultNum));
     return plotCombater;
 }
Пример #11
0
 /// <summary>
 /// 副本战役
 /// </summary>
 /// <param name="user"></param>
 /// <param name="plotNpcID"></param>
 /// <returns></returns>
 public static ISingleCombat TriggerPlot(GameUser user, int plotNpcID)
 {
     //TrumpAbilityAttack.CombatTrumpLift(user.UserID); //法宝每战斗M次就扣除N点寿命
     ICombatController controller = new TjxCombatController();
     ISingleCombat plotCombater = controller.GetSingleCombat(CombatType.Plot);
     plotCombater.SetAttack(new UserEmbattleQueue(user.UserID, user.UseMagicID));
     plotCombater.SetDefend(new MonsterQueue(plotNpcID));
     return plotCombater;
 }
Пример #12
0
 /// <summary>
 /// 是否满足培养条件
 /// </summary>
 /// <param name="user"></param>
 /// <param name="culTure"></param>
 /// <returns></returns>
 public static bool IsMeet(GameUser user, EnchantCulTure culTure)
 {
     if ((culTure.CultureType == EnchantCultureType.Ordinary && user.UserExtend != null && user.UserExtend.MoJingNum >= culTure.MoJingNum)
         || (user.GoldNum >= culTure.GoldNum && culTure.CultureType != EnchantCultureType.Ordinary))
     {
         return true;
     }
     return false;
 }
Пример #13
0
        /// <summary>
        /// 新手礼包
        /// </summary>
        /// <param name="user"></param>
        /// <param name="item"></param>
        /// <param name="noviceActivities"></param>
        /// <returns></returns>
        public static bool GetNoviceActivities(GameUser user, UserItemInfo item, NoviceActivities noviceActivities)
        {
            List<NoviceReward> noviceArray = noviceActivities.Reward.ToList();
            var package = UserItemPackage.Get(user.UserID);
            var userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao);
            int subPackNum = MathUtils.Subtraction(user.GridNum, MathUtils.Subtraction(userItemArray.Count, 5, 0), 0);
            if (noviceArray.Count > subPackNum)
            {
                return false;
            }

            bool isupdate = false;

            foreach (NoviceReward reward in noviceArray)
            {
                if (reward.Type == 1)
                {
                    isupdate = true;
                    user.EnergyNum = MathUtils.Addition(user.EnergyNum, (short)reward.Num, short.MaxValue);
                }
                if (reward.Type == 2)
                {
                    isupdate = true;
                    user.GameCoin = MathUtils.Addition(user.GameCoin, reward.Num, int.MaxValue);
                }
                else if (reward.Type == 3)
                {
                    ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(reward.Reward);
                    UserGeneral userGeneral = UserGeneral.GetMainGeneral(user.UserID);
                    if (itemInfo.ItemType == ItemType.ZhuangBei && !itemInfo.CheckCareer(userGeneral.CareerID))
                    {
                        continue;
                    }
                    UserItemHelper.AddUserItem(user.UserID, itemInfo.ItemID, reward.Num);
                }
                else if (reward.Type == 4)
                {
                    //晶石
                    isupdate = true;
                    user.GiftGold = MathUtils.Addition(user.GiftGold, reward.Num, int.MaxValue);
                }
            }
            UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1);

            if (isupdate)
            {
                //user.Update();
            }

            if (item.ItemID == 5000 || item.ItemID == 5001 ||
                item.ItemID == 5002 || item.ItemID == 5003)
            {
                int itemID = MathUtils.Addition(item.ItemID, 1, int.MaxValue);
                UserItemHelper.AddUserItem(user.UserID, itemID, 1);
            }
            return true;
        }
Пример #14
0
 /// <summary>
 /// 获取个人元宝
 /// </summary>
 /// <param name="user"></param>
 /// <returns></returns>
 public static void Trigger(GameUser user)
 {
     var trigger = new PaymentTrigger(GetPayment);
     trigger.BeginInvoke(user.GameId, user.ServerId, user.Pid, user.UserID, null, null);
     int vipLv;
     int vipGold = MathUtils.Addition(user.PayGold, user.ExtGold, int.MaxValue);
     List<VipLvInfo> vipLvArray = new ShareCacheStruct<VipLvInfo>().FindAll(u => u.PayGold <= vipGold);
     vipLv = vipLvArray.Count > 0 ? vipLvArray[vipLvArray.Count - 1].VipLv : (short)0;
     user.VipLv = vipLv;
     //user.Update();
 }
Пример #15
0
 /// <summary>
 /// 检查是否能猎命
 /// </summary>
 /// <returns></returns>
 public static bool CheckAllowCrystall(GameUser user)
 {
     var package = UserCrystalPackage.Get(user.UserID);
     int currNum = 0;
     if (package != null)
     {
         currNum = package.CrystalPackage.FindAll(m => m.IsSale == 1).Count;
         currNum += user.GrayCrystalList == null ? 0 : user.GrayCrystalList.Count;
     }
     return currNum < _crystalGridNum;
 }
Пример #16
0
        public static short _currMaxLv = ObjectExtend.ToShort(ConfigEnvSet.GetInt("User.CurrMaxLv")); //玩家最大等级

        #endregion Fields

        #region Methods

        /// <summary>
        /// 增加灵件
        /// </summary>
        public static bool AddSparePart(GameUser user, UserSparePart sparePart)
        {
            int currNum = user.SparePartList.FindAll(m => string.IsNullOrEmpty(m.UserItemID)).Count;
            if (currNum < user.UserExtend.SparePartGridNum)
            {
                user.AppendSparePart(sparePart);
                UserLogHelper.AppendSparePartLog(user.UserID, sparePart, 1);
                return true;
            }
            return false;
        }
Пример #17
0
 public static bool IsUp(int magicID, int magicLv, GameUser user)
 {
     bool result = true;
     int upLv = MathUtils.Addition(magicLv, 1, int.MaxValue);
     MagicLvInfo magicLvInfo = new ConfigCacheSet<MagicLvInfo>().FindKey(magicID, upLv);
     if (magicLvInfo == null || magicLvInfo.EscalateMinLv > user.UserLv || magicLvInfo.ExpNum > user.ExpNum)
     {
         result = false;
     }
     return result;
 }
Пример #18
0
 /// <summary>
 /// 天地劫副本层数
 /// </summary>
 /// <param name="user"></param>
 public static void CheckUserPlotLayerNum(GameUser user)
 {
     PlotInfo plotInfo = UserHelper.CheckUserPlotKalpa(user);
     if (user != null && plotInfo != null)
     {
         //最高层
         if (user.UserExtend != null && user.UserExtend.MaxLayerNum == 0)
         {
             user.UserExtend.MaxLayerNum = plotInfo.LayerNum;
             //user.Update();
         }
     }
 }
Пример #19
0
        /// <summary>
        /// 下发任务
        /// </summary>
        /// <param name="user"></param>
        /// <param name="taskID"></param>
        public static List<UserTask> SendAllowTask(GameUser user, int taskID)
        {
            List<UserTask> userTaskList = new List<UserTask>();
            var cacheSet = new GameDataCacheSet<UserTask>();
            UserTask preTask = cacheSet.FindKey(user.UserID, taskID);
            if (taskID > 0 && preTask != null && (preTask.TaskState != TaskState.Close || preTask.TaskType == TaskType.Offset))
            {
                return userTaskList;
            }
            if (taskID == 0 && cacheSet.FindAll(user.UserID, m => m.TaskType < TaskType.Daily).Count > 0)
            {
                return userTaskList;
            }

            IList<StoryTaskInfo> taskList = StoryTaskInfo.GetNextTask(taskID);
            bool isSend = true;
            foreach (StoryTaskInfo taskInfo in taskList)
            {
                if (taskInfo.CountryID != CountryType.None && user.CountryID != taskInfo.CountryID)
                {
                    continue;
                }
                UserTask userTask = cacheSet.FindKey(user.UserID, taskInfo.TaskID);
                if (userTask == null)
                {
                    userTask = new UserTask
                    {
                        TaskID = taskInfo.TaskID,
                        UserID = user.UserID,
                        TaskType = taskInfo.TaskType,
                        TaskState = taskInfo.TaskLv <= user.UserLv ? TaskState.AllowTake : TaskState.NoTake,
                        CompleteNum = 0,
                        CreateDate = DateTime.Now
                    };
                    cacheSet.Add(userTask);
                    userTask = cacheSet.FindKey(user.UserID, taskInfo.TaskID);
                    userTaskList.Add(userTask);
                }
                else
                {
                    //判断是否已下发过
                    isSend = false;
                    break;
                }
            }
            if (isSend)
            {
                return userTaskList;
            }
            return new List<UserTask>();
        }
Пример #20
0
        /// <summary>
        /// 初始化背包
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public static void AddBack(GameUser user)
        {
            var cacheSet = new PersonalCacheStruct<UserPack>();
            var cacheSetBackPack = new ShareCacheStruct<BackpackConfigInfo>();
            var userPack = cacheSet.FindKey(user.UserID);

            if (userPack == null)
            {
                userPack = new UserPack();

                userPack.UserID = user.UserID.ToInt();
                userPack.CreateDate = DateTime.Now;
                var backpackConfig = cacheSetBackPack.FindKey(BackpackType.ZhuangBei);
                if (backpackConfig != null)
                {
                    var packType = new PackType();
                    packType.BackpackType = BackpackType.ZhuangBei;
                    packType.OpenNum = 0;
                    packType.Position = backpackConfig.DefaultNum;
                }

                backpackConfig = cacheSetBackPack.FindKey(BackpackType.YongBing);
                if (backpackConfig != null)
                {
                    var packType = new PackType();
                    packType.BackpackType = BackpackType.YongBing;
                    packType.OpenNum = 0;
                    packType.Position = backpackConfig.DefaultNum;
                }

                backpackConfig = cacheSetBackPack.FindKey(BackpackType.HunJi);
                if (backpackConfig != null)
                {
                    var packType = new PackType();
                    packType.BackpackType = BackpackType.HunJi;
                    packType.OpenNum = 0;
                    packType.Position = backpackConfig.DefaultNum;
                }

                backpackConfig = cacheSetBackPack.FindKey(BackpackType.BeiBao);
                if (backpackConfig != null)
                {
                    var packType = new PackType();
                    packType.BackpackType = BackpackType.BeiBao;
                    packType.OpenNum = 0;
                    packType.Position = backpackConfig.DefaultNum;
                    user.GridNum = MathUtils.Addition(user.GridNum, backpackConfig.DefaultNum);
                }
            }

        }
Пример #21
0
        /// <summary>
        /// 精力,金矿洞,免费猎命,竞技场挑战次数
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public static HelperInfo GetDailyEnergy(GameUser user, RestrainType restrainType)
        {
            UserDailyRestrain dailyRestrain = new GameDataCacheSet<UserDailyRestrain>().FindKey(user.UserID);
            int maxNum = VipHelper.GetVipUseNum(user.VipLv, restrainType);
            int currPayNum = 0;
            if (dailyRestrain != null && DateTime.Now.Date == dailyRestrain.RefreshDate.Date)
            {
                if (restrainType == RestrainType.GouMaiJingLi)
                {
                    currPayNum = MathUtils.Subtraction(maxNum, dailyRestrain.Funtion4, 0);
                }
                else if (restrainType == RestrainType.WaJinKuang)
                {
                    currPayNum = MathUtils.Subtraction(maxNum, dailyRestrain.Funtion3, 0);
                }
                else if (restrainType == RestrainType.MianFeiLieMing)
                {
                    currPayNum = MathUtils.Subtraction(maxNum, dailyRestrain.Funtion2, 0);
                }
                else if (restrainType == RestrainType.JingJiChangTiaoZhan)
                {
                    UserChallengeNum userChallenge = new GameDataCacheSet<UserChallengeNum>().FindKey(user.UserID);
                    if (userChallenge != null && DateTime.Now.Date == userChallenge.InsertDate.Date)
                    {
                        //当日总挑战次数
                        currPayNum = MathUtils.Addition(maxNum, userChallenge.ChallengeNum, int.MaxValue);
                        currPayNum = MathUtils.Subtraction(currPayNum, dailyRestrain.Funtion9, 0);
                    }
                    else
                    {
                        currPayNum = MathUtils.Subtraction(maxNum, dailyRestrain.Funtion9, 0);
                    }
                }

            }
            else
            {
                currPayNum = maxNum;
            }
            //if (restrainType == RestrainType.JingJiChangTiaoZhan)
            //{
            //    UserChallengeNum userChallenge = new GameDataCacheSet<UserChallengeNum>().FindKey(user.UserID);
            //    if (userChallenge != null && DateTime.Now.Date == userChallenge.InsertDate.Date)
            //    {
            //        currPayNum = currPayNum.Addition(userChallenge.ChallengeNum, int.MaxValue); //当日总挑战次数
            //        currPayNum = maxNum.Subtraction(currPayNum, 0);
            //    }
            //}
            return new HelperInfo() { Type = restrainType, SurplusNum = currPayNum, TotalNum = maxNum };
        }
Пример #22
0
 /// <summary>
 /// 获得灵件
 /// </summary>
 /// <param name="user"></param>
 /// <param name="spareID"></param>
 public static void AppendSpare(GameUser user, int spareID)
 {
     SparePartInfo partInfo = new ConfigCacheSet<SparePartInfo>().FindKey(spareID);
     UserSparePart sparePart = UserSparePart.GetRandom(spareID);
     if (partInfo == null || sparePart == null || !SparePartInfo.IsExist(spareID))
     {
         return;
     }
     if (!UserHelper.AddSparePart(user, sparePart))
     {
         var chatService = new TjxChatService();
         //掉落灵件
         chatService.SystemSendWhisper(user, string.Format(LanguageManager.GetLang().St4303_SparePartFalling, partInfo.Name));
     }
 }
Пример #23
0
 public static bool IsAllow(GameUser user, ChatType chatType)
 {
     if (user != null)
     {
         if (chatType == ChatType.World && (DateTime.Now - user.ChatDate).TotalSeconds >= IntervalSend)
         {
             return true;
         }
         else if (chatType != ChatType.World)
         {
             return true;
         }
     }
     return false;
 }
Пример #24
0
 public static short IsComplete(GameUser user, StoryTaskInfo taskInfo)
 {
     if (user.UserLv >= taskInfo.TaskLv)
     {
         int collectNum = TrumpHelper.GetUserItemNum(user.UserID, taskInfo.TargetItemID);
         if (collectNum >= taskInfo.TargetItemNum)
         {
             return 1;
         }
         else
         {
             return 0;
         }
     }
     return 2;
 }
Пример #25
0
        public static ItemBaseInfo ShowLairReward(LairTreasure lairTreasure, GameUser gameUser, LairTreasureType lairTreasureType)    //��ʾ��õ���Ʒ
        {
            var cacheSetItem = new ConfigCacheSet<ItemBaseInfo>();
            ItemBaseInfo itemBaseInfo = null;
            var lairRewardList = new ConfigCacheSet<LairRewardInfo>().FindAll(s => s.LairPosition == lairTreasure.LairPosition && s.LairTreasureType == lairTreasureType.ToInt());
            if (lairRewardList.Count >0)
            {
                var lairRewardInfo = lairRewardList[RandomUtils.GetRandom(0, lairRewardList.Count)];
                itemBaseInfo = cacheSetItem.FindKey(lairRewardInfo.ItemID);
                if (itemBaseInfo != null)
                {
                    UserItemHelper.AddUserItem(gameUser.UserID, lairRewardInfo.ItemID, lairTreasure.Num);
                }
            }

            return itemBaseInfo;
        }
Пример #26
0
 /// <summary>
 /// 每日限制剩余刷新次数
 /// </summary>
 /// <param name="user"></param>
 /// <returns></returns>
 public static int DailyRestrainSurplusNum(GameUser user, RestrainType restrainType, int restrainNum)
 {
     int surplusNum = 0;
     UserDailyRestrain dailyRestrain = new GameDataCacheSet<UserDailyRestrain>().FindKey(user.UserID);
     DailyRestrainSet dailyRestrainSet = new ShareCacheStruct<DailyRestrainSet>().FindKey(restrainType);
     if (dailyRestrainSet != null && dailyRestrain != null)
     {
         if (dailyRestrain.UserExtend != null && DateTime.Now.Date == dailyRestrain.RefreshDate.Date)
         {
             surplusNum = MathUtils.Subtraction(GetVipUseNum(user.VipLv, restrainType), restrainNum, 0);
         }
         else
         {
             surplusNum = GetVipUseNum(user.VipLv, restrainType);
         }
     }
     return surplusNum;
 }
Пример #27
0
        /// <summary>
        /// 增加灰色水晶
        /// </summary>
        /// <param name="user"></param>
        /// <param name="crystalID"></param>
        public static void AppendGrayCrystal(GameUser user, int crystalID)
        {
            if (user == null) return;
            if (user.GrayCrystalList == null) user.GrayCrystalList = new CacheList<GrayCrystal>();

            CrystalInfo crystalInfo = new ConfigCacheSet<CrystalInfo>().FindKey(crystalID);
            if (crystalInfo == null) return;

            if (CheckAllowCrystall(user))
            {
                user.GrayCrystalList.Add(new GrayCrystal()
                {
                    UserCrystalID = Guid.NewGuid().ToString(),
                    CrystalID = crystalID,
                    SalePrice = crystalInfo.Price,
                    CreateDate = DateTime.Now,
                });
                user.UserExtend.GrayCrystalNum = MathUtils.Addition(user.UserExtend.GrayCrystalNum, 1);
            }
        }
Пример #28
0
        //��ȡ��Ʒ
        public static void GetLaiReward(LairTreasureType lairTreasureType, GameUser gameUser, int id, int postion)
        {
            var lairTreasuerList = new ConfigCacheSet<LairTreasureInfo>().FindKey(MathUtils.ToInt(lairTreasureType));
            LairTreasure lairTreasure = lairTreasuerList.LairTreasureList[postion];
            var lairRewardInfo = new ConfigCacheSet<LairRewardInfo>().FindKey(id);
            var rewardTye = lairRewardInfo.LairRewardType.ToEnum<LairRewardType>();
            switch (rewardTye)
            {
                case LairRewardType.GameGoin:
                    gameUser.GameCoin = MathUtils.Addition(gameUser.GameCoin, lairTreasure.Num);
                    break;
                case LairRewardType.Gold:
                    gameUser.PayGold = MathUtils.Addition(gameUser.PayGold, lairTreasure.Num);
                    break;
                case LairRewardType.FunJi:
                case LairRewardType.WuPing:
                    UserItemHelper.AddUserItem(gameUser.UserID, lairRewardInfo.ItemID, 1);
                    break;

            }
        }
Пример #29
0
 /// <summary>
 /// 新手玩家达到等级获得奖励
 /// </summary>
 /// <param name="user"></param>
 public static void ActivationNewCard(GameUser user)
 {
     if (user.UserExtend != null && !string.IsNullOrEmpty(user.CardID))
     {
         string[] handLv = ConfigEnvSet.GetString("UserCard.GetPackageLv").Split(',');
         for (int i = 0; i < handLv.Length; i++)
         {
             short newHandLv = Convert.ToInt16(handLv[i]);
             if (IsReward(user.UserID, user.UserLv, newHandLv))
             {
                 int cardUserID = user.CardID.Substring(1).ToInt();
                 AddCardReward(user.UserID, strUserID, newHandLv);
                 AddCardReward(cardUserID.ToString(), user.UserID, newHandLv);
                 string item = "5030=1=1";
                 string content = string.Format(LanguageManager.GetLang().NewHandPackage, newHandLv);
                 GainNewCardPackage(user.UserID, 0, item, content);
                 GainNewCardPackage(cardUserID.ToString(), 0, item, content);
             }
         }
     }
 }
Пример #30
0
 /// <summary>
 /// 竞技场连胜奖励数值
 /// </summary>
 /// <param name="user"></param>
 /// <param name="winsNum"></param>
 public static void ArenaWinsNum(GameUser user, int winsNum)
 {
     int gameCoin = 0;
     int giftGold = 0;
     if (winsNum == 3)
     {
         gameCoin = 100000;
         giftGold = 20;
     }
     else if (winsNum == 5)
     {
         gameCoin = 200000;
         giftGold = 40;
     }
     else if (winsNum == 7)
     {
         gameCoin = 300000;
         giftGold = 60;
     }
     else if (winsNum == 9)
     {
         gameCoin = 400000;
         giftGold = 80;
     }
     else if (winsNum == 12)
     {
         gameCoin = 500000;
         giftGold = 100;
     }
     else if (winsNum == 20)
     {
         gameCoin = 2000000;
         giftGold = 200;
     }
     user.GameCoin = MathUtils.Addition(user.GameCoin, gameCoin, int.MaxValue);
     user.GiftGold = MathUtils.Addition(user.GiftGold, giftGold, int.MaxValue);
     //user.Update();
     string content = string.Format(LanguageManager.GetLang().St5107_ArenaWinsNum, user.NickName, winsNum, gameCoin, giftGold);
     new TjxChatService().SystemSend(ChatType.World, content);
 }