Example #1
0
        /// <summary>
        /// 获取命运水晶品质名称
        /// </summary>
        /// <param name="qualityType"></param>
        /// <returns></returns>
        public static string GetQualityName(CrystalQualityType qualityType)
        {
            string result = string.Empty;

            switch (qualityType)
            {
            case CrystalQualityType.Gray:
                result = LanguageManager.GetLang().Color_Gray;
                break;

            case CrystalQualityType.Green:
                result = LanguageManager.GetLang().Color_Green;
                break;

            case CrystalQualityType.Blue:
                result = LanguageManager.GetLang().Color_Blue;
                break;

            case CrystalQualityType.PurPle:
                result = LanguageManager.GetLang().Color_PurPle;
                break;

            case CrystalQualityType.Yellow:
                result = LanguageManager.GetLang().Color_Yellow;
                break;

            case CrystalQualityType.Orange:
                result = LanguageManager.GetLang().Color_Orange;
                break;

            default:
                break;
            }
            return(result);
        }
Example #2
0
        /// <summary>
        /// 奖励命运水晶
        /// </summary>
        public static string UserUserUniversalCrystal(GameUser user, CrystalQualityType qualityType, string systemContent)
        {
            string             crystalContent = string.Empty;
            List <CrystalInfo> crystalArray2  = new ConfigCacheSet <CrystalInfo>().FindAll(m => m.CrystalQuality == qualityType);

            if (crystalArray2.Count > 0)
            {
                int             randomNum      = RandomUtils.GetRandom(0, crystalArray2.Count);
                CrystalInfo     crystal        = new ConfigCacheSet <CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID);
                var             packageCrystal = UserCrystalPackage.Get(user.UserID);
                UserCrystalInfo userCrystal    = new UserCrystalInfo()
                {
                    UserCrystalID = Guid.NewGuid().ToString(),
                    CrystalID     = crystal.CrystalID,
                    CrystalLv     = 1,
                    CurrExprience = 0,
                    GeneralID     = 0,
                    IsSale        = 2,
                    CreateDate    = DateTime.Now,
                };
                packageCrystal.SaveCrystal(userCrystal);

                crystalContent = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_Crystal, qualityType, crystal.CrystalName));
            }
            return(crystalContent);
        }
Example #3
0
        /// <summary>
        /// 奖励命运水晶
        /// </summary>
        public static void GetUserCrystal(GameUser user, CrystalQualityType qualityType)
        {
            List <CrystalInfo> crystalArray2 = new ConfigCacheSet <CrystalInfo>().FindAll(m => m.CrystalQuality == qualityType);

            if (crystalArray2.Count > 0)
            {
                int         randomNum = RandomUtils.GetRandom(0, crystalArray2.Count);
                CrystalInfo crystal   = new ConfigCacheSet <CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID);
                UserHelper.CrystalAppend(user.UserID, crystal.CrystalID, 2);
                string chatcontent = string.Empty;
                if (crystal.CrystalQuality == CrystalQualityType.Orange)
                {
                    chatcontent = LanguageManager.GetLang().St1305_GainQualityNotice;
                }
                else
                {
                    chatcontent = LanguageManager.GetLang().St1305_HighQualityNotice;
                }
                string content = string.Format(chatcontent,
                                               user.NickName,
                                               CrystalHelper.GetQualityName(crystal.CrystalQuality),
                                               crystal.CrystalName
                                               );
                new TjxChatService().SystemSend(ChatType.World, content);
            }
        }
Example #4
0
        /// <summary>
        /// 活动奖励
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="reward"></param>
        /// <param name="num"></param>
        public static void GameUserReward(string userID, RewardType reward, int itemID, int num)
        {
            GameUser userInfo = new GameDataCacheSet <GameUser>().FindKey(userID);

            if (userInfo != null)
            {
                if (reward == RewardType.GameGoin)
                {
                    userInfo.GameCoin = MathUtils.Addition(userInfo.GameCoin, num, int.MaxValue);
                    //userInfo.Update();
                }
                else if (reward == RewardType.Obtion)
                {
                    userInfo.ObtainNum = MathUtils.Addition(userInfo.ObtainNum, num, int.MaxValue);
                    //userInfo.Update();
                }
                else if (reward == RewardType.EnergyNum)
                {
                    userInfo.EnergyNum = MathUtils.Addition(userInfo.EnergyNum, (short)num, short.MaxValue);
                    //userInfo.Update();
                }
                else if (reward == RewardType.ExpNum)
                {
                    userInfo.ExpNum = MathUtils.Addition(userInfo.ExpNum, num, int.MaxValue);
                    //userInfo.Update();
                }
                else if (reward == RewardType.Gold)
                {
                    userInfo.ItemGold = MathUtils.Addition(userInfo.ItemGold, num, int.MaxValue);
                    //userInfo.Update();
                }
                else if (reward == RewardType.Experience)
                {
                    UserHelper.UserGeneralExp(userID, num);
                }
                else if (reward == RewardType.Item)
                {
                    UserItemHelper.AddUserItem(userID, itemID, num);
                }
                else if (reward == RewardType.CrystalType)
                {
                    CrystalQualityType qualityType = CrystalQualityType.PurPle;
                    GetUserCrystal(userInfo, qualityType);
                }
                else if (reward == RewardType.CrystalId)
                {
                    UserHelper.CrystalAppend(userID, itemID, 2);
                }
            }
        }
Example #5
0
        /// <summary>
        /// 通用活动奖励
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="reward"></param>
        /// <param name="num"></param>
        public static string GameUserUniversalNocite(string userID, RewardType reward, int itemID, int num, string systemContent)
        {
            string   content  = string.Empty;
            GameUser userInfo = new GameDataCacheSet <GameUser>().FindKey(userID);

            if (userInfo != null)
            {
                if (reward == RewardType.GameGoin)
                {
                    userInfo.GameCoin = MathUtils.Addition(userInfo.GameCoin, num, int.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_GameCoin, num));
                }
                else if (reward == RewardType.Obtion)
                {
                    userInfo.ObtainNum = MathUtils.Addition(userInfo.ObtainNum, num, int.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_ObtionNum, num));
                }
                else if (reward == RewardType.EnergyNum)
                {
                    userInfo.EnergyNum = MathUtils.Addition(userInfo.EnergyNum, (short)num, short.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_EnergyNum, num));
                }
                else if (reward == RewardType.ExpNum)
                {
                    userInfo.ExpNum = MathUtils.Addition(userInfo.ExpNum, num, int.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_ExpNum, num));
                }
                else if (reward == RewardType.Gold)
                {
                    userInfo.ItemGold = MathUtils.Addition(userInfo.ItemGold, num, int.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_GiftGoldNum, num));
                }
                else if (reward == RewardType.Experience)
                {
                    UserHelper.UserGeneralExp(userID, num);
                    content = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_Experience, num));
                }
                else if (reward == RewardType.Item)
                {
                    UserItemHelper.AddUserItem(userID, itemID, num);
                    ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(itemID);
                    if (itemInfo != null)
                    {
                        string itemcontent = string.Format(LanguageManager.GetLang().St_Item, itemInfo.ItemName, 1, num);
                        content = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, itemcontent);
                    }
                }
                else if (reward == RewardType.CrystalType)
                {
                    CrystalQualityType qualityType = CrystalQualityType.PurPle;
                    content = UserUserUniversalCrystal(userInfo, qualityType, systemContent);
                    //GetUserCrystal(userInfo, qualityType);
                }
                else if (reward == RewardType.CrystalId)
                {
                    var             packageCrystal = UserCrystalPackage.Get(userID);
                    UserCrystalInfo userCrystal    = new UserCrystalInfo()
                    {
                        UserCrystalID = Guid.NewGuid().ToString(),
                        CrystalID     = itemID,
                        CrystalLv     = 1,
                        CurrExprience = 0,
                        GeneralID     = 0,
                        IsSale        = 2,
                        CreateDate    = DateTime.Now
                    };
                    packageCrystal.SaveCrystal(userCrystal);
                    CrystalInfo info = new ConfigCacheSet <CrystalInfo>().FindKey(itemID);
                    if (info != null)
                    {
                        content = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_Crystal, info.CrystalQuality, info.CrystalName));
                    }
                }
            }
            return(content);
        }
Example #6
0
        /// <summary>
        /// 活动奖励
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="reward"></param>
        /// <param name="num"></param>
        public static string GameUserRewardNocite(string userID, RewardType reward, int itemID, int num, CrystalQualityType qualityType)
        {
            string   content  = string.Empty;
            GameUser userInfo = new GameDataCacheSet <GameUser>().FindKey(userID);

            if (userInfo != null)
            {
                if (reward == RewardType.GameGoin)
                {
                    userInfo.GameCoin = MathUtils.Addition(userInfo.GameCoin, num, int.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().St_SummerThreeGameCoinNotice, num);
                }
                else if (reward == RewardType.Obtion)
                {
                    userInfo.ObtainNum = MathUtils.Addition(userInfo.ObtainNum, num, int.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().St_SummerThreeObtionNotice, num);
                }
                else if (reward == RewardType.EnergyNum)
                {
                    userInfo.EnergyNum = MathUtils.Addition(userInfo.EnergyNum, (short)num, short.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().St_SummerThreeEnergyNotice, num);
                }
                else if (reward == RewardType.ExpNum)
                {
                    userInfo.ExpNum = MathUtils.Addition(userInfo.ExpNum, num, int.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().St_SummerThreeExpNumNotice, num);
                }
                else if (reward == RewardType.Gold)
                {
                    userInfo.ItemGold = MathUtils.Addition(userInfo.ItemGold, num, int.MaxValue);
                    //userInfo.Update();
                    content = string.Format(LanguageManager.GetLang().St_SummerThreeGoldNotice, num);
                }
                else if (reward == RewardType.Experience)
                {
                    UserHelper.UserGeneralExp(userID, num);
                    content = string.Format(LanguageManager.GetLang().St_SummerThreeExperienceNotice, num);
                }
                else if (reward == RewardType.Item)
                {
                    UserItemHelper.AddUserItem(userID, itemID, num);
                    ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(itemID);
                    if (itemInfo != null)
                    {
                        content = string.Format(LanguageManager.GetLang().St_SummerThreeItemNotice, num, itemInfo.ItemName);
                    }
                }
                else if (reward == RewardType.CrystalType)
                {
                    GetUserCrystal(userInfo, qualityType);
                }
                else if (reward == RewardType.CrystalId)
                {
                    UserHelper.CrystalAppend(userID, itemID, 2);
                    CrystalInfo info = new ConfigCacheSet <CrystalInfo>().FindKey(itemID);
                    if (info != null)
                    {
                        content = string.Format(LanguageManager.GetLang().St_SummerCrystalNotice, info.CrystalName);
                    }
                }
            }
            return(content);
        }
Example #7
0
        /// <summary>
        /// 奖励命运水晶
        /// </summary>
        public static string UserUserUniversalCrystal(GameUser user, CrystalQualityType qualityType, string systemContent)
        {
            string crystalContent = string.Empty;
            List<CrystalInfo> crystalArray2 = new ConfigCacheSet<CrystalInfo>().FindAll(m => m.CrystalQuality == qualityType);
            if (crystalArray2.Count > 0)
            {
                int randomNum = RandomUtils.GetRandom(0, crystalArray2.Count);
                CrystalInfo crystal = new ConfigCacheSet<CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID);
                var packageCrystal = UserCrystalPackage.Get(user.UserID);
                UserCrystalInfo userCrystal = new UserCrystalInfo()
                {
                    UserCrystalID = Guid.NewGuid().ToString(),
                    CrystalID = crystal.CrystalID,
                    CrystalLv = 1,
                    CurrExprience = 0,
                    GeneralID = 0,
                    IsSale = 2,
                    CreateDate = DateTime.Now,
                };
                packageCrystal.SaveCrystal(userCrystal);

                crystalContent = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_Crystal, qualityType, crystal.CrystalName));
            }
            return crystalContent;
        }
Example #8
0
 /// <summary>
 /// 奖励命运水晶
 /// </summary>
 public static void GetUserCrystal(GameUser user, CrystalQualityType qualityType)
 {
     List<CrystalInfo> crystalArray2 = new ConfigCacheSet<CrystalInfo>().FindAll(m => m.CrystalQuality == qualityType);
     if (crystalArray2.Count > 0)
     {
         int randomNum = RandomUtils.GetRandom(0, crystalArray2.Count);
         CrystalInfo crystal = new ConfigCacheSet<CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID);
         UserHelper.CrystalAppend(user.UserID, crystal.CrystalID, 2);
         string chatcontent = string.Empty;
         if (crystal.CrystalQuality == CrystalQualityType.Orange)
         {
             chatcontent = LanguageManager.GetLang().St1305_GainQualityNotice;
         }
         else
         {
             chatcontent = LanguageManager.GetLang().St1305_HighQualityNotice;
         }
         string content = string.Format(chatcontent,
             user.NickName,
             CrystalHelper.GetQualityName(crystal.CrystalQuality),
             crystal.CrystalName
             );
         new TjxChatService().SystemSend(ChatType.World, content);
     }
 }
Example #9
0
 /// <summary>
 /// 活动奖励
 /// </summary>
 /// <param name="userID"></param>
 /// <param name="reward"></param>
 /// <param name="num"></param>
 public static string GameUserRewardNocite(string userID, RewardType reward, int itemID, int num, CrystalQualityType qualityType)
 {
     string content = string.Empty;
     GameUser userInfo = new GameDataCacheSet<GameUser>().FindKey(userID);
     if (userInfo != null)
     {
         if (reward == RewardType.GameGoin)
         {
             userInfo.GameCoin = MathUtils.Addition(userInfo.GameCoin, num, int.MaxValue);
             //userInfo.Update();
             content = string.Format(LanguageManager.GetLang().St_SummerThreeGameCoinNotice, num);
         }
         else if (reward == RewardType.Obtion)
         {
             userInfo.ObtainNum = MathUtils.Addition(userInfo.ObtainNum, num, int.MaxValue);
             //userInfo.Update();
             content = string.Format(LanguageManager.GetLang().St_SummerThreeObtionNotice, num);
         }
         else if (reward == RewardType.EnergyNum)
         {
             userInfo.EnergyNum = MathUtils.Addition(userInfo.EnergyNum, (short)num, short.MaxValue);
             //userInfo.Update();
             content = string.Format(LanguageManager.GetLang().St_SummerThreeEnergyNotice, num);
         }
         else if (reward == RewardType.ExpNum)
         {
             userInfo.ExpNum = MathUtils.Addition(userInfo.ExpNum, num, int.MaxValue);
             //userInfo.Update();
             content = string.Format(LanguageManager.GetLang().St_SummerThreeExpNumNotice, num);
         }
         else if (reward == RewardType.Gold)
         {
             userInfo.ItemGold = MathUtils.Addition(userInfo.ItemGold, num, int.MaxValue);
             //userInfo.Update();
             content = string.Format(LanguageManager.GetLang().St_SummerThreeGoldNotice, num);
         }
         else if (reward == RewardType.Experience)
         {
             UserHelper.UserGeneralExp(userID, num);
             content = string.Format(LanguageManager.GetLang().St_SummerThreeExperienceNotice, num);
         }
         else if (reward == RewardType.Item)
         {
             UserItemHelper.AddUserItem(userID, itemID, num);
             ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(itemID);
             if (itemInfo != null)
             {
                 content = string.Format(LanguageManager.GetLang().St_SummerThreeItemNotice, num, itemInfo.ItemName);
             }
         }
         else if (reward == RewardType.CrystalType)
         {
             GetUserCrystal(userInfo, qualityType);
         }
         else if (reward == RewardType.CrystalId)
         {
             UserHelper.CrystalAppend(userID, itemID, 2);
             CrystalInfo info = new ConfigCacheSet<CrystalInfo>().FindKey(itemID);
             if (info != null)
             {
                 content = string.Format(LanguageManager.GetLang().St_SummerCrystalNotice, info.CrystalName);
             }
         }
     }
     return content;
 }
Example #10
0
        public static string HuntingLife(GameUser user, out string errStr)
        {
            #region
            errStr = string.Empty;
            int huntingID  = UserLightLit(user.UserID);
            int huntingID2 = UserNextLight(user.UserID, huntingID);
            UserDailyRestrain userRestrain = new PersonalCacheStruct <UserDailyRestrain>().FindKey(user.UserID);
            var probabilityInfo            = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID); //当前猎命人物的概率
            if (probabilityInfo == null)
            {
                return(errStr);
            }
            ProbabilityInfo probability1 = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID2);
            if (userRestrain != null && userRestrain.Funtion2 >= VipHelper.GetVipUseNum(user.VipLv, RestrainType.MianFeiLieMing) && DateTime.Now.Date == userRestrain.RefreshDate.Date)
            {
                if (probabilityInfo.Price > user.GameCoin)
                {
                    errStr = LanguageManager.GetLang().St_GameCoinNotEnough;
                    return(errStr);
                }
            }
            //暑期第三弹
            if (huntingID2 == 1001 && !NoviceHelper.IsGianCrystalPack(user))
            {
                errStr = LanguageManager.GetLang().St1305_BeiBaoBackpackFull;
                return(errStr);
            }
            var lightCacheSet = new PersonalCacheStruct <UserLight>();
            if (huntingID != 1001)
            {
                UserLight userLight1 = lightCacheSet.FindKey(user.UserID, huntingID);
                if (userLight1.IsLight == 2)
                {
                    return(string.Empty);
                }
                if (userLight1.IsLight == 1)
                {
                    userLight1.IsLight = 2;
                }
            }
            UserLight userLight = new PersonalCacheStruct <UserLight>().FindKey(user.UserID, huntingID2);
            if (RandomUtils.IsHit(probability1.Light))
            {
                if (userLight != null)
                {
                    userLight.IsLight = 1;
                    if (userLight.HuntingID == 1005)
                    {
                        errStr = LanguageManager.GetLang().St1305_HuntingIDLight;
                    }
                }
                else
                {
                    userLight = new UserLight()
                    {
                        UserID    = user.UserID,
                        HuntingID = huntingID2,
                        IsLight   = 1
                    };
                    lightCacheSet.Add(userLight);
                }
            }

            if (userRestrain != null)
            {
                if (userRestrain.Funtion2 >= VipHelper.GetVipUseNum(user.VipLv, RestrainType.MianFeiLieMing) && DateTime.Now.Date == userRestrain.RefreshDate.Date)
                {
                    user.GameCoin = MathUtils.Subtraction(user.GameCoin, probabilityInfo.Price, 0);
                }
                else
                {
                    userRestrain.Funtion2 = MathUtils.Addition(userRestrain.Funtion2, 1, int.MaxValue);
                }
            }
            else
            {
                user.GameCoin = MathUtils.Subtraction(user.GameCoin, probabilityInfo.Price, 0);
            }

            //每种品质的概率
            double[]           probabilityArray2 = { (double)probabilityInfo.Gray, (double)probabilityInfo.Green, (double)probabilityInfo.Blue, (double)probabilityInfo.Purple, (double)probabilityInfo.Yellow, (double)probabilityInfo.Red };
            int                index2            = RandomUtils.GetHitIndex(probabilityArray2);
            CrystalQualityType qualityType       = (CrystalQualityType)Enum.Parse(typeof(CrystalQualityType), (index2 + 1).ToString());
            List <CrystalInfo> crystalArray2     = new ShareCacheStruct <CrystalInfo>().FindAll(u => u.CrystalQuality == qualityType && u.DemandLv <= user.UserLv);
            if (crystalArray2.Count > 0)
            {
                int randomNum = RandomUtils.GetRandom(0, crystalArray2.Count);
                var crystal   = new ShareCacheStruct <CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID);
                if (crystal != null && crystal.CrystalQuality == CrystalQualityType.Gray)
                {
                    //wuzf修改 8-15 灰色放在临时背包不存DB
                    CrystalHelper.AppendGrayCrystal(user, crystal.CrystalID);
                }
                else if (crystal != null)
                {
                    var package = UserCrystalPackage.Get(user.UserID);

                    UserCrystalInfo userCrystal = new UserCrystalInfo()
                    {
                        UserCrystalID = Guid.NewGuid().ToString(),
                        CrystalID     = crystal.CrystalID,
                        CrystalLv     = 1,
                        CurrExprience = 0,
                        GeneralID     = 0,
                        IsSale        = 1,
                        CreateDate    = DateTime.Now
                    };
                    package.SaveCrystal(userCrystal);
                    UserLogHelper.AppenCtystalLog(user.UserID, 5, crystal.CrystalID, probabilityInfo.Price, 0, null, 1, 0);
                    //高品质聊天通知);
                    if (crystal.CrystalQuality >= CrystalQualityType.Yellow)
                    {
                        var    cacheChat = new TjxChatService();
                        string content   = string.Format(LanguageManager.GetLang().St1305_HighQualityNotice,
                                                         user.NickName,
                                                         CrystalHelper.GetQualityName(crystal.CrystalQuality),
                                                         crystal.CrystalName
                                                         );
                        cacheChat.SystemSend(ChatType.World, content);
                    }
                }
            }
            return(errStr);

            #endregion
        }
Example #11
0
 /// <summary>
 /// 获取命运水晶品质名称
 /// </summary>
 /// <param name="qualityType"></param>
 /// <returns></returns>
 public static string GetQualityName(CrystalQualityType qualityType)
 {
     string result = string.Empty;
     switch (qualityType)
     {
         case CrystalQualityType.Gray:
             result = LanguageManager.GetLang().Color_Gray;
             break;
         case CrystalQualityType.Green:
             result = LanguageManager.GetLang().Color_Green;
             break;
         case CrystalQualityType.Blue:
             result = LanguageManager.GetLang().Color_Blue;
             break;
         case CrystalQualityType.PurPle:
             result = LanguageManager.GetLang().Color_PurPle;
             break;
         case CrystalQualityType.Yellow:
             result = LanguageManager.GetLang().Color_Yellow;
             break;
         case CrystalQualityType.Orange:
             result = LanguageManager.GetLang().Color_Orange;
             break;
         default:
             break;
     }
     return result;
 }
Example #12
0
        protected override object this[string index]
        {
            get
            {
                #region
                switch (index)
                {
                case "CrystalID": return(CrystalID);

                case "CrystalName": return(CrystalName);

                case "HeadID": return(HeadID);

                case "CrystalQuality": return(CrystalQuality);

                case "AbilityID": return(AbilityID);

                case "Experience": return(Experience);

                case "Price": return(Price);

                case "IsTelegrams": return(IsTelegrams);

                case "DemandLv": return(DemandLv);

                default: throw new ArgumentException(string.Format("CrystalInfo index[{0}] isn't exist.", index));
                }
                #endregion
            }
            set
            {
                #region
                switch (index)
                {
                case "CrystalID":
                    _CrystalID = value.ToInt();
                    break;

                case "CrystalName":
                    _CrystalName = value.ToNotNullString();
                    break;

                case "HeadID":
                    _HeadID = value.ToNotNullString();
                    break;

                case "CrystalQuality":
                    _CrystalQuality = value.ToEnum <CrystalQualityType>();
                    break;

                case "AbilityID":
                    _AbilityID = value.ToEnum <AbilityType>();
                    break;

                case "Experience":
                    _Experience = value.ToInt();
                    break;

                case "Price":
                    _Price = value.ToInt();
                    break;

                case "IsTelegrams":
                    _IsTelegrams = value.ToInt();
                    break;

                case "DemandLv":
                    _DemandLv = value.ToShort();
                    break;

                default: throw new ArgumentException(string.Format("CrystalInfo index[{0}] isn't exist.", index));
                }
                #endregion
            }
        }
Example #13
0
        /// <summary>
        /// 某品质某等级的随机装备
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="itemList"></param>
        public static string PrizeItemList(string userID, ItemRandom itemList, CrystalQualityType crystalType)
        {
            string content = string.Empty;
            QualityType qualityType = (QualityType)Enum.Parse(typeof(QualityType), itemList.Quality.ToString());
            List<ItemBaseInfo> itemInfoArray = new ShareCacheStruct<ItemBaseInfo>().FindAll(m =>
                                                                  m.QualityType == qualityType &&
                                                                  m.DemandLv == itemList.ItemLv && m.ItemType == itemList.Type);

            int randomNum = RandomUtils.GetRandom(0, itemInfoArray.Count);
            ItemBaseInfo itemInfo = itemInfoArray[randomNum];
            if (itemInfo != null)
            {
                content = ActivitiesAward.GameUserRewardNocite(userID, RewardType.Item, itemInfo.ItemID, 1, crystalType);
            }
            return content;
        }
Example #14
0
        public override bool TakeAction()
        {
            UserHelper.GetUserLightOpen(ContextUser.UserID);
            short opType     = 0;
            int   huntingID2 = 0;

            if (huntingID < 1005)
            {
                huntingID2 = MathUtils.Addition(huntingID, 1, int.MaxValue);
            }
            else
            {
                huntingID2 = 1001; //huntingID;
            }
            UserHelper.ChechDailyRestrain(ContextUser.UserID);

            if (!CrystalHelper.CheckAllowCrystall(ContextUser))
            {
                ErrorCode = 1000;
                ErrorInfo = LanguageManager.GetLang().St1305_FateBackpackFull;
                return(false);
            }
            else
            {
                if (!CrystalHelper.CheckAllowCrystall(ContextUser))
                {
                    ErrorCode = errorNum;
                    ErrorInfo = LanguageManager.GetLang().St1305_FateBackpackFull;
                    return(false);
                }
            }

            ProbabilityInfo probabilityInfo = null;

            if (ops == 1)
            {
                #region
                opType = 1;
                UserDailyRestrain userRestrain = new PersonalCacheStruct <UserDailyRestrain>().FindKey(ContextUser.UserID);
                probabilityInfo = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID); //当前猎命人物的概率
                if (probabilityInfo == null)
                {
                    return(false);
                }
                ProbabilityInfo probability1 = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID2);
                if (userRestrain != null && userRestrain.Funtion2 >= VipHelper.GetVipUseNum(ContextUser.VipLv, RestrainType.MianFeiLieMing) && DateTime.Now.Date == userRestrain.RefreshDate.Date)
                {
                    if (probabilityInfo.Price > ContextUser.GameCoin)
                    {
                        ErrorCode = errorNum;
                        ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                        return(false);
                    }
                }
                //暑期第三弹
                if (huntingID2 == 1001 && !NoviceHelper.IsGianCrystalPack(ContextUser))
                {
                    ErrorCode = errorNum;
                    ErrorInfo = LanguageManager.GetLang().St1305_BeiBaoBackpackFull;
                    return(false);
                }
                var lightCacheSet = new PersonalCacheStruct <UserLight>();
                if (huntingID != 1001)
                {
                    UserLight userLight1 = lightCacheSet.FindKey(ContextUser.UserID, huntingID);
                    if (userLight1.IsLight == 2)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        return(false);
                    }

                    if (userLight1.IsLight == 1)
                    {
                        userLight1.IsLight = 2;
                        //userLight1.Update();
                    }
                }
                UserLight userLight = new PersonalCacheStruct <UserLight>().FindKey(ContextUser.UserID, huntingID2);
                if (RandomUtils.IsHit(probability1.Light))
                {
                    ErrorCode = ErrorCode;
                    ErrorInfo = probability1.HuntingName;

                    if (userLight != null)
                    {
                        userLight.IsLight = 1;
                        //userLight.Update();
                    }
                    else
                    {
                        userLight = new UserLight()
                        {
                            UserID    = ContextUser.UserID,
                            HuntingID = huntingID2,
                            IsLight   = 1
                        };
                        lightCacheSet.Add(userLight);
                    }
                }

                if (userRestrain != null)
                {
                    if (userRestrain.Funtion2 >= VipHelper.GetVipUseNum(ContextUser.VipLv, RestrainType.MianFeiLieMing) && DateTime.Now.Date == userRestrain.RefreshDate.Date)
                    {
                        ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, probabilityInfo.Price, 0);
                        //ContextUser.Update();
                    }
                    else
                    {
                        userRestrain.Funtion2 = MathUtils.Addition(userRestrain.Funtion2, 1, int.MaxValue);
                        //userRestrain.Update();
                    }
                }
                else
                {
                    ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, probabilityInfo.Price, 0);
                    //ContextUser.Update();
                }

                lightArray = new PersonalCacheStruct <UserLight>().FindAll(ContextUser.UserID);
                #endregion
            }
            else if (ops == 2)
            {
                #region
                opType = 2;
                if (ContextUser.VipLv < 5)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
                    return(false);
                }

                probabilityInfo = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID); //当前猎命人物的概率
                if (probabilityInfo == null)
                {
                    return(false);
                }

                if (ContextUser.GoldNum < probabilityInfo.Price)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                UserLight uLightInfo = new PersonalCacheStruct <UserLight>().FindKey(ContextUser.UserID, probabilityInfo.GoldHunting);
                if (uLightInfo != null && uLightInfo.IsLight == 1)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1305_HuntingIDLight;
                    return(false);
                }
                else if (uLightInfo != null && (uLightInfo.IsLight == 2 || uLightInfo.IsLight == 0))
                {
                    uLightInfo.IsLight = 1;
                }
                else
                {
                    uLightInfo = new UserLight()
                    {
                        UserID    = ContextUser.UserID,
                        HuntingID = probabilityInfo.GoldHunting,
                        IsLight   = 1
                    };
                    new PersonalCacheStruct <UserLight>().Add(uLightInfo);
                }

                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, probabilityInfo.Price, int.MaxValue);
                lightArray          = new PersonalCacheStruct <UserLight>().FindAll(ContextUser.UserID);
                #endregion
            }

            //每种品质的概率
            double[]           probabilityArray2 = { (double)probabilityInfo.Gray, (double)probabilityInfo.Green, (double)probabilityInfo.Blue, (double)probabilityInfo.Purple, (double)probabilityInfo.Yellow, (double)probabilityInfo.Red };
            int                index2            = RandomUtils.GetHitIndex(probabilityArray2);
            CrystalQualityType qualityType       = (CrystalQualityType)Enum.Parse(typeof(CrystalQualityType), (index2 + 1).ToString());
            List <CrystalInfo> crystalArray2     = new ShareCacheStruct <CrystalInfo>().FindAll(u => u.CrystalQuality == qualityType && u.DemandLv <= ContextUser.UserLv);
            if (crystalArray2.Count > 0)
            {
                int randomNum = RandomUtils.GetRandom(0, crystalArray2.Count);
                crystal = new ShareCacheStruct <CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID);
                if (crystal != null && crystal.CrystalQuality == CrystalQualityType.Gray)
                {
                    //wuzf修改 8-15 灰色放在临时背包不存DB
                    CrystalHelper.AppendGrayCrystal(ContextUser, crystal.CrystalID);
                }
                else if (crystal != null)
                {
                    var package = UserCrystalPackage.Get(Uid);

                    UserCrystalInfo userCrystal = new UserCrystalInfo()
                    {
                        UserCrystalID = Guid.NewGuid().ToString(),
                        CrystalID     = crystal.CrystalID,
                        CrystalLv     = 1,
                        CurrExprience = 0,
                        GeneralID     = 0,
                        IsSale        = 1,
                        CreateDate    = DateTime.Now
                    };
                    package.SaveCrystal(userCrystal);
                    UserLogHelper.AppenCtystalLog(ContextUser.UserID, opType, crystal.CrystalID, probabilityInfo.Price, probabilityInfo.Price, null, 1, 0);
                    //高品质聊天通知);
                    if (crystal.CrystalQuality >= CrystalQualityType.Yellow)
                    {
                        var    cacheChat = new TjxChatService();
                        string content   = string.Format(LanguageManager.GetLang().St1305_HighQualityNotice,
                                                         ContextUser.NickName,
                                                         CrystalHelper.GetQualityName(crystal.CrystalQuality),
                                                         crystal.CrystalName
                                                         );
                        cacheChat.SystemSend(ChatType.World, content);
                    }
                }
            }

            //日常任务-猎命
            TaskHelper.TriggerDailyTask(Uid, 4009);
            return(true);
        }
Example #15
0
        protected override object this[string index]
		{
			get
			{
                #region
				switch (index)
				{
                    case "CrystalID": return CrystalID;
                    case "CrystalName": return CrystalName;
                    case "HeadID": return HeadID;
                    case "CrystalQuality": return CrystalQuality;
                    case "AbilityID": return AbilityID;
                    case "Experience": return Experience;
                    case "Price": return Price;
                    case "IsTelegrams": return IsTelegrams;
                    case "DemandLv": return DemandLv;
					default: throw new ArgumentException(string.Format("CrystalInfo index[{0}] isn't exist.", index));
				}
                #endregion
			}
			set
			{
                #region
				switch (index)
				{
                    case "CrystalID": 
                        _CrystalID = value.ToInt(); 
                        break; 
                    case "CrystalName": 
                        _CrystalName = value.ToNotNullString(); 
                        break; 
                    case "HeadID": 
                        _HeadID = value.ToNotNullString(); 
                        break; 
                    case "CrystalQuality":
                        _CrystalQuality = value.ToEnum<CrystalQualityType>(); 
                        break; 
                    case "AbilityID":
                        _AbilityID = value.ToEnum<AbilityType>(); 
                        break; 
                    case "Experience": 
                        _Experience = value.ToInt(); 
                        break; 
                    case "Price": 
                        _Price = value.ToInt(); 
                        break; 
                    case "IsTelegrams": 
                        _IsTelegrams = value.ToInt(); 
                        break; 
                    case "DemandLv": 
                        _DemandLv = value.ToShort(); 
                        break; 
					default: throw new ArgumentException(string.Format("CrystalInfo index[{0}] isn't exist.", index));
				}
                #endregion
			}
		}