private void UpdateCraftingRate() { foreach (var bp in blueprintDefinitions) { if (IndividualRates.ContainsKey(bp.targetItem.displayName.english)) { //Puts("{0}: {1} -> {2}", bp.targetItem.shortname, bp.time, IndividualRates[bp.targetItem.displayName.english]); if (IndividualRates[bp.targetItem.displayName.english] != 0f) { bp.time = Blueprints[bp.targetItem.shortname] * (IndividualRates[bp.targetItem.displayName.english] / 100); } else { bp.time = 0f; } } else { //Puts("{0}: {1} -> {2}", bp.targetItem.shortname, bp.time, Blueprints[bp.targetItem.shortname] * CraftingRate / 100); if (CraftingRate != 0f) { bp.time = Blueprints[bp.targetItem.shortname] * (CraftingRate / 100); } else { bp.time = 0f; } } } }
private void CraftItemCommandChat(BasePlayer player, string command, string[] args) { if (!player.IsAdmin) { SendChatMessage(player, NoPermission); return; } if (args.Length < 1) { SendChatMessage(player, NoItemRate); return; } var item = args.Any(arg => arg.All(c => char.IsDigit(c) || c == '.')) ? string.Join(" ", args.Take(args.Length - 1)) : string.Join(" ", args); if (!Items.Contains(item)) { SendChatMessage(player, InvalidItem, item); return; } float rate = args.Any(arg => arg.All(c => char.IsDigit(c) || c == '.')) ? float.Parse(args.First(arg => arg.All(c => char.IsDigit(c) || c == '.'))) : -1f; if (rate == -1f) { if (IndividualRates.ContainsKey(item)) { SendChatMessage(player, string.Format(RemovedItem, item)); IndividualRates.Remove(item); goto SCV_1; } else { SendChatMessage(player, ModifyError); } return; } if (IndividualRates.ContainsKey(item)) { IndividualRates[item] = rate; } else { IndividualRates.Add(item, rate); } SendChatMessage(player, ModifyCraftingRateItem, item, rate); SCV_1: SetConfigValue("Options", "IndividualCraftingRates", IndividualRates); UpdateCraftingRate(); }
private void CraftItemCommandConsole(ConsoleSystem.Arg arg) { if (!arg.IsAdmin) { arg.ReplyWith(NoPermission); return; } if (!arg.HasArgs(1)) { arg.ReplyWith(NoItemRate); return; } float rate = arg.Args.Any(x => x.All(c => char.IsDigit(c) || c == '.')) ? float.Parse(arg.Args.First(x => x.All(c => char.IsDigit(c) || c == '.'))) : -1f; var item = arg.Args.Any(x => x.All(c => char.IsDigit(c) || c == '.')) ? string.Join(" ", arg.Args.Take(arg.Args.Length - 1)) : string.Join(" ", arg.Args); if (!Items.Contains(item)) { arg.ReplyWith(string.Format(InvalidItem, item, rate)); return; } if (rate == -1f) { if (IndividualRates.ContainsKey(item)) { arg.ReplyWith(string.Format(RemovedItem, item)); IndividualRates.Remove(item); goto SCV_1; } else { arg.ReplyWith(ModifyError); } return; } if (IndividualRates.ContainsKey(item)) { IndividualRates[item] = rate; } else { IndividualRates.Add(item, rate); } arg.ReplyWith(string.Format(ModifyCraftingRateItem, item, rate)); SCV_1: SetConfigValue("Options", "IndividualCraftingRates", IndividualRates); UpdateCraftingRate(); }
private void UpdateCraftingRate() { foreach (var bp in blueprintDefinitions) { if (IndividualRates.ContainsKey(bp.targetItem.displayName.english)) { bp.time = Blueprints[bp.targetItem.shortname] * IndividualRates[bp.targetItem.displayName.english] / 100; } else { bp.time = Blueprints[bp.targetItem.shortname] * CraftingRate / 100; } } }
private void CraftItemCommandChat(BasePlayer player, string command, string[] args) { if (!player.IsAdmin()) { SendChatMessage(player, NoPermission); return; } if (args.Length == 0 || args.Length < 2) { SendChatMessage(player, NoItemRate); return; } float rate; if (!float.TryParse(args[args.Length - 1], out rate)) { SendChatMessage(player, ModifyError); return; } var item = string.Empty; for (var i = 0; i < args.Length - 1; i++) { item += args[i] + " "; } item = item.Trim(); if (!Items.Contains(item)) { SendChatMessage(player, InvalidItem, item); return; } if (IndividualRates.ContainsKey(item)) { IndividualRates[item] = rate; } else { IndividualRates.Add(item, rate); } SetConfigValue("Options", "IndividualCraftingRates", IndividualRates); SendChatMessage(player, ModifyCraftingRateItem, item, rate); UpdateCraftingRate(); }
private void CraftItemCommandConsole(ConsoleSystem.Arg arg) { if (arg.Player() != null && !arg.Player().IsAdmin()) { arg.ReplyWith(NoPermission); return; } if (!arg.HasArgs(2)) { arg.ReplyWith(NoItemRate); return; } var rate = arg.GetFloat(arg.Args.Length - 1, -1f); if (rate == -1f) { arg.ReplyWith(ModifyError); return; } var item = string.Empty; for (var i = 0; i < arg.Args.Length - 1; i++) { item += arg.Args[i] + " "; } item = item.Trim(); if (!Items.Contains(item)) { arg.ReplyWith(string.Format(InvalidItem, item, rate)); return; } if (IndividualRates.ContainsKey(item)) { IndividualRates[item] = rate; } else { IndividualRates.Add(item, rate); } SetConfigValue("Options", "IndividualCraftingRates", IndividualRates); arg.ReplyWith(string.Format(ModifyCraftingRateItem, item, rate)); UpdateCraftingRate(); }
public double FindReward(BasePlayer player, int bet, int reference, int multiplicator = 1) { int findReward = 0; float reward = 0; int[] number = GetIntArray(reference); string newreference; if (UseSR && ServerRewards.IsLoaded) { #region jackpot if (reference == SRJackpotNumber) { if (bet * multiplicator >= MinBetjackpot) { findReward = findReward * multiplicator + (int)SRjackpot; return(findReward); } else { SendReply(player, string.Format(lang.GetMessage("BetMore", this, player.UserIDString), MinBetjackpot)); } } #endregion #region full_match if (DefaultBasePoint.Contains(reference.ToString())) { SRWinRates.TryGetValue("Match4Number", out findReward); return(findReward * multiplicator); } #endregion #region three_match newreference = number[0].ToString() + number[1].ToString() + number[2].ToString() + "x"; if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match3Number", out findReward); return(findReward * multiplicator); } newreference = number[0].ToString() + number[1].ToString() + "x" + number[3].ToString(); if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match4Number", out findReward); return(findReward * multiplicator); } newreference = number[0].ToString() + "x" + number[2].ToString() + number[3].ToString(); if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match4Number", out findReward); return(findReward * multiplicator); } newreference = "x" + number[1].ToString() + number[2].ToString() + number[3].ToString(); if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match4Number", out findReward); return(findReward * multiplicator); } #endregion #region two_match newreference = number[0].ToString() + number[1].ToString() + "x" + "x"; if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match2Number", out findReward); return(findReward * multiplicator); } newreference = number[0].ToString() + "x" + "x" + number[3].ToString(); if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match2Number", out findReward); return(findReward * multiplicator); } newreference = "x" + "x" + number[2].ToString() + number[3].ToString(); if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match2Number", out findReward); return(findReward * multiplicator); } newreference = number[0].ToString() + "x" + number[2].ToString() + "x"; if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match2Number", out findReward); return(findReward * multiplicator); } newreference = "x" + number[1].ToString() + "x" + number[3].ToString(); if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match2Number", out findReward); return(findReward * multiplicator); } newreference = "x" + number[1].ToString() + number[2].ToString() + "x"; if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match2Number", out findReward); return(findReward * multiplicator); } #endregion #region one_match newreference = number[0].ToString() + "x" + "x" + "x"; if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match1Number", out findReward); return(findReward * multiplicator); } newreference = "x" + number[1].ToString() + "x" + "x"; if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match1Number", out findReward); return(findReward * multiplicator); } newreference = "x" + "x" + number[2].ToString() + "x"; if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match1Number", out findReward); return(findReward * multiplicator); } newreference = "x" + "x" + "x" + number[3].ToString(); if (DefaultBasePoint.Contains(newreference)) { SRWinRates.TryGetValue("Match1Number", out findReward); return(findReward * multiplicator); } #endregion } else { #region jackpot if (reference == JackpotNumber) { int jackpots = (int)Math.Round(Currentbet.Sum(v => v.Value.totalbet)); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator + jackpots + jackpot); } #endregion #region full_match if (IndividualRates.ContainsKey(reference.ToString())) { IndividualRates.TryGetValue(number.ToString(), out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } #endregion #region three_match newreference = number[0].ToString() + number[1].ToString() + number[2].ToString() + "x"; IndividualRates.TryGetValue(newreference, out findReward); if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = number[0].ToString() + number[1].ToString() + "x" + number[3].ToString(); if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = number[0].ToString() + "x" + number[2].ToString() + number[3].ToString(); if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = "x" + number[1].ToString() + number[2].ToString() + number[3].ToString(); if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } #endregion #region two_match newreference = number[0].ToString() + number[1].ToString() + "x" + "x"; if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = number[0].ToString() + "x" + "x" + number[3].ToString(); if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = "x" + "x" + number[2].ToString() + number[3].ToString(); if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = number[0].ToString() + "x" + number[2].ToString() + "x"; if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = "x" + number[1].ToString() + "x" + number[3].ToString(); if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = "x" + number[1].ToString() + number[2].ToString() + "x"; if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } #endregion #region one_match newreference = number[0].ToString() + "x" + "x" + "x"; if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = "x" + number[1].ToString() + "x" + "x"; if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = "x" + "x" + number[2].ToString() + "x"; if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } newreference = "x" + "x" + "x" + number[3].ToString(); if (IndividualRates.ContainsKey(newreference)) { IndividualRates.TryGetValue(newreference, out findReward); return(bet * (Math.Round((double)findReward / 100, 2)) * multiplicator); } #endregion } return(findReward); }