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();
        }
Пример #4
0
 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;
         }
     }
 }
Пример #5
0
        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();
        }
Пример #6
0
        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();
        }
Пример #7
0
        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);
        }