/// <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); }
/// <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); }
/// <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); } }
/// <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); } } }
/// <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); }
/// <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); }
/// <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; }
/// <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); } }
/// <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; }
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 }
/// <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; }
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 } }
/// <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; }
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); }
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 } }