/// <summary> /// 领取神秘礼包 /// </summary> /// <returns></returns> public static void MysteriousSpree(UserItemInfo item, GameUser user) { ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(item.ItemID); if (itemInfo != null) { var prizeInfosArray = itemInfo.ItemPack; int randomNum = RandomUtils.GetRandom(0, prizeInfosArray.Count); PrizeInfo prizeInfo = prizeInfosArray[randomNum]; ActivitiesAward.GameUserReward(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num); } }
/// <summary> /// 节日活动奖励 /// </summary> /// <param name="user"></param> /// <param name="festivalID"></param> /// <param name="itemID"></param> public static void UserFestivalReward(GameUser user, int festivalID, int itemID) { FestivalInfo festival = new ShareCacheStruct <FestivalInfo>().FindKey(festivalID); if (festival != null) { var rewardsArray = festival.Reward; foreach (PrizeInfo reward in rewardsArray) { ActivitiesAward.GameUserRewardNocite(user.UserID, reward.Type, reward.ItemID, reward.Num, reward.CrystalType); } } }
/// <summary> /// 随机获得金币、精力奖励 /// </summary> /// <param name="item"></param> /// <param name="user"></param> public static void GetProbabilityReward(GameUser user, UserItemInfo item) { ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(item.ItemID); if (itemInfo != null) { var prizeInfosArray = itemInfo.ItemPack; double[] probability = new double[prizeInfosArray.Count]; for (int i = 0; i < prizeInfosArray.Count; i++) { probability[i] = (double)prizeInfosArray[i].Probability; } int index2 = RandomUtils.GetHitIndex(probability); PrizeInfo prizeInfo = prizeInfosArray[index2]; ActivitiesAward.GameUserReward(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num); UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1); } }
public override bool TakeAction() { UserStatus status = ContextUser.UserStatus; if (status == UserStatus.FengJin) { return(false); } UserGeneral general = UserGeneral.GetMainGeneral(ContextUser.UserID); Ranking <UserRank> ranking = RankingFactory.Get <UserRank>(CombatRanking.RankingKey); UserRank rankInfo; if (ranking.TryGetRankNo(m => m.UserID == ContextUser.UserID, out rankID)) { rankInfo = ranking.Find(s => s.UserID == ContextUser.UserID); //ContextUser.RankID = rankID; } else { rankInfo = new UserRank() { UserID = ContextUser.UserID, HeadID = general.HeadID, GameCoin = ContextUser.GameCoin, NickName = ContextUser.NickName, ObtainNum = ContextUser.ObtainNum, UserLv = ContextUser.UserLv, RankId = int.MaxValue, RankDate = DateTime.Now, SportsIntegral = 0 }; ranking.TryAppend(rankInfo); } sportsName = UserHelper.SportTitleName(ContextUser.ObtainNum); sportNum = GetChallGeNum(ContextUser.UserID); sportsIntegral = ContextUser.SportsIntegral.ToInt(); sportsReward = new ShareCacheStruct <SportsRewardInfo>().FindKey(rankInfo.RankId); receiveDate = (int)(RankingHelper.GetNextReceiveDate() - DateTime.Now).TotalSeconds; CombatRanking combatrank = (CombatRanking)ranking; _userRankArray = combatrank.GetRanking(ContextUser); _userRankArray.Add(rankInfo); _userRankArray.QuickSort((x, y) => { if (x == null && y == null) { return(0); } if (x != null && y == null) { return(1); } if (x == null) { return(-1); } return(x.RankId.CompareTo(y.RankId)); }); _userCombatArray = ContextUser.GetSportsCombat(); _userCombatArray.QuickSort((x, y) => { if (x == null && y == null) { return(0); } if (x != null && y == null) { return(1); } if (x == null) { return(-1); } return(y.CombatDate.CompareTo(x.CombatDate)); }); if (rankInfo != null && rankID > 0) { victoryNum = rankInfo.VictoryNum; } //NoviceHelper.SportVictoryNum(ContextUser, 2001, victoryNum); //竞技场奖励 if (victoryNum >= 7) { ActivitiesAward.HolidayFestival(ContextUser.UserID); } rankID = ContextUser.RankID; int count = 10; int pagecount = 0; userRankArray = ranking.GetRange(1, count, out pagecount); return(true); }