Иконка ресурса

FREE FCase : 2.0.0 2.0.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using Facepunch;
using Newtonsoft.Json;
using Oxide.Core;
using Oxide.Core.Plugins;
using Oxide.Game.Rust.Cui;
using Rust;
using UnityEngine;
namespace Oxide.Plugins {
    [Info("FCase", "Sempai", "2.0.0")]
    public class FCase : RustPlugin {
#region Var
        [PluginReference]
        private Plugin ImageLibrary, FNotification;
#endregion
#region Data
        public class StorageList {
            public string PrefabSpawn;
            public string Image;
            public int UniversalNumber;
        }
        public Dictionary<ulong, List<StorageList>> _playerData = new Dictionary<ulong, List<StorageList>>();
#endregion
#region Hooks
        object CanLootEntity(BasePlayer player, ResourceExtractorFuelStorage container) {
            if (player == null || container == null) {
                return null;
            }
            if (container.OwnerID == 1156) {
                OpenSwitchCase(player);
                return false;
            }
            return null;
        }
        private object OnTeamInvite(BasePlayer inviter, BasePlayer target) {
            if (target.OwnerID != 1156) return null;
            OpenSwitchCase(inviter);
            return true;
        }
        void OnServerInitialized() {
            PrintWarning("\n-----------------------------\n " +" Author - Sempai#3239\n " +" VK - https://vk.com/rustnastroika\n " +" Forum - https://topplugin.ru\n " +" Discord - https://discord.gg/5DPTsRmd3G\n" +"-----------------------------");
            try {
                _playerData = Interface.GetMod().DataFileSystem.ReadObject<Dictionary<ulong, List<StorageList>>>(Name);
                if (_playerData == null) _playerData = new Dictionary<ulong, List<StorageList>>();
            }
            catch {
                _playerData = new Dictionary<ulong, List<StorageList>>();
            }
            if (ImageLibrary == null || !ImageLibrary.IsLoaded) {
                PrintError("IMAGE LIBRARY IS NOT INSTALLED!");
            }
            else {
                var imagesList = new Dictionary<string, string>();
                foreach (var imageKeys in config._SettingsCase) {
                    if (!string.IsNullOrEmpty(imageKeys.Image) && !imagesList.ContainsKey(imageKeys.Image)) {
                        imagesList.Add(imageKeys.Image, imageKeys.Image);
                    }
                }
                ImageLibrary?.Call("ImportImageList", Title, imagesList, 0UL, true);
            }
        }
        void Unload() {
            Interface.GetMod().DataFileSystem.WriteObject(Name, _playerData);
        }
        void OnPlayerConnected(BasePlayer player) {
            if (!_playerData.ContainsKey(player.userID)) _playerData.Add(player.userID, new List<StorageList>());
        }
#endregion
#region UI
        public string Layer = "UI_FCase";
        public string HexToCuiColor(string HEX, float Alpha = 100) {
            if (string.IsNullOrEmpty(HEX)) HEX = "#FFFFFF";
            var str = HEX.Trim('#');
            var r = byte.Parse(str.Substring(0, 2), NumberStyles.HexNumber);
            var g = byte.Parse(str.Substring(2, 2), NumberStyles.HexNumber);
            var b = byte.Parse(str.Substring(4, 2), NumberStyles.HexNumber);
            return $"{(double) r / 255} {(double) g / 255} {(double) b / 255} {Alpha / 100}";
        }
        void OpenSwitchCase(BasePlayer player) {
            CuiHelper.DestroyUi(player, Layer);
            CuiElementContainer container = new CuiElementContainer();
#region Panel | Color Panel
            container.Add(new CuiPanel {
                CursorEnabled = true, RectTransform = {
                    AnchorMin = "0 0", AnchorMax = "1 1"
                }
                , Image = {
                    Color = "0 0 0 0.9", Material = "assets/content/ui/uibackgroundblur.mat"
                }
            }
            , "Overlay", Layer);
            container.Add(new CuiElement {
                Parent = Layer, Components = {
                    new CuiImageComponent {
                        Color = "0 0 0 0.9", Sprite = "assets/content/ui/ui.background.transparent.radial.psd"
                    }
                    , new CuiRectTransformComponent {
                        AnchorMin = "0 0", AnchorMax = "1 1", OffsetMax = "0 0"
                    }
                }
            }
            );
#endregion
#region Close
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "-100 -100", AnchorMax = "100 100", OffsetMax = "0 0"
                }
                , Button = {
                    Color = "0 0 0 0", Close = Layer
                }
                , Text = {
                    Text = ""
                }
            }
            , Layer);
#endregion
#region Panel Main
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.06093755 0.1592593", AnchorMax = "0.940625 0.8444445"
                }
                , Button = {
                    Command = $"", Color = HexToCuiColor("#fffdfc", 5), Material = "assets/content/ui/uibackgroundblur.mat"
                }
                , Text = {
                    Text = "", Color = HexToCuiColor("#fffdfc"), Align = TextAnchor.MiddleLeft, FontSize = 13, Font = "robotocondensed-bold.ttf"
                }
                ,
            }
            , Layer);
#endregion
#region Balance
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.07135417 0.1796296", AnchorMax = "0.1765625 0.2259259"
                }
                , Button = {
                    Command = $"", Color = HexToCuiColor("#4094b9"), Sprite = "assets/content/ui/ui.background.tile.psd"
                }
                , Text = {
                    Text = $"Баланс: {GetAmount(player.inventory.AllItems(), config._itemSetup.ShortName, config._itemSetup.SkinID)}", Color = HexToCuiColor("#fcf7f6"), Align = TextAnchor.MiddleCenter, FontSize = 16, Font = "robotocondensed-bold.ttf"
                }
                ,
            }
            , Layer, Layer + ".Balance");
#endregion
#region Comment
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.1848959 0.1796296", AnchorMax = "0.9296875 0.2259259"
                }
                , Button = {
                    Command = $"", Color = "0 0 0 0"
                }
                , Text = {
                    Text = $"Я продаю уникальные ящики с различным лутом за Золотые монеты! Золотые монеты можно добыть со всех видов бочек, ящиков и разных ивентов там их больше всего! Для того, что бы открыть ящики - зайдите в /menu и нажмите 'Инвентарь ящиков'.", Color = HexToCuiColor("#fcf7f6"), Align = TextAnchor.MiddleLeft, FontSize = 14, Font = "robotocondensed-regular.ttf"
                }
                ,
            }
            , Layer);
#endregion
            foreach (var check in config._SettingsCase.Select((i, t) => new {
                A = i, B = t
            }
            )) {
                container.Add(new CuiButton {
                    RectTransform = {
                        AnchorMin = $"{0.07135417 + check.B * 0.173 - Math.Floor((float) check.B / 5) * 5 * 0.173} {0.5435185 - Math.Floor((float) check.B/ 5) * 0.30}", AnchorMax = $"{0.2354167 + check.B * 0.173 - Math.Floor((float) check.B / 5) * 5 * 0.173} {0.825917 - Math.Floor((float) check.B / 5) * 0.30}", OffsetMax = "0 0"
                    }
                    , Button = {
                        Color = HexToCuiColor("#000000", 50), Command = ""
                    }
                    , Text = {
                        Text = $"", Align = TextAnchor.LowerRight, Font = "robotocondensed-bold.ttf", FontSize = 15
                    }
                }
                , Layer, Layer + $".{check.B}.ItemCaseList");
                container.Add(new CuiElement {
                    Parent = Layer + $".{check.B}.ItemCaseList", Components = {
                        new CuiRawImageComponent {
                            FadeIn = 0.3f, Png = (string)ImageLibrary.Call("GetImage", check.A.Image)
                        }
                        , new CuiRectTransformComponent {
                            AnchorMin = "0.2571428 0.4491943", AnchorMax = "0.7619047 0.9705225"
                        }
                    }
                }
                );
                container.Add(new CuiElement() {
                    Parent = Layer + $".{check.B}.ItemCaseList", Components = {
                        new CuiTextComponent {
                            Color = HexToCuiColor("#E7DDD4"), Text = $"<b>{check.A.DisplayName}</b>\n<size=10>Цена: {check.A.Price}</size>", Align = TextAnchor.MiddleCenter, FontSize = 14, Font = "robotocondensed-regular.ttf"
                        }
                        , new CuiRectTransformComponent {
                            AnchorMin = "0 0.2295154", AnchorMax = "1 0.4491944"
                        }
                        ,
                    }
                }
                );
                container.Add(new CuiButton {
                    RectTransform = {
                        AnchorMin = "0.2603174 0.06557581", AnchorMax = "0.7428571 0.2295153"
                    }
                    , Button = {
                        Command = GetAmount(player.inventory.AllItems(), config._itemSetup.ShortName, config._itemSetup.SkinID) > check.A.Price ? $"UI_FCaseHandler buyItem {check.A.DisplayName}" : "", Color = HexToCuiColor("#95B641"), Material = "assets/content/ui/uibackgroundblur.mat"
                    }
                    , Text = {
                        Text = "Купить", Color = HexToCuiColor("#FFFFFA"), Align = TextAnchor.MiddleCenter, FontSize = 14, Font = "robotocondensed-bold.ttf"
                    }
                    ,
                }
                , Layer + $".{check.B}.ItemCaseList");
            }
            CuiHelper.AddUi(player, container);
        }
        public void OpenInventoryPage(BasePlayer player, int page) {
            var data = _playerData[player.userID];
            int pagex = page + 1;
            var container = new CuiElementContainer();
            CuiHelper.DestroyUi(player, Layer + ".Vpered");
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.264584 0.2027778", AnchorMax = "0.2963542 0.2490829"
                }
                , Button = {
                    Color = HexToCuiColor("#fffdfc", 10), Material = "assets/content/ui/uibackgroundblur.mat", Command = pagex > 0 && (pagex - 1) * 50 < data.Count ? $"UI_FCaseHandler pageInventory {page + 1}" : ""
                }
                , Text = {
                    Text = "+", Color = HexToCuiColor("#fcf7f6"), Align = TextAnchor.MiddleCenter, FontSize = 18, Font = "robotocondensed-bold.ttf"
                }
            }
            , Layer, Layer + ".Vpered");
            CuiHelper.DestroyUi(player, Layer + ".Nazad");
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.1958331 0.2027778", AnchorMax = "0.2276038 0.2490829"
                }
                , Button = {
                    Color = HexToCuiColor("#fffdfc", 10), Material = "assets/content/ui/uibackgroundblur.mat", Command = page != 1 ? $"UI_FCaseHandler pageInventory {page - 1}" : ""
                }
                , Text = {
                    Text = "-", Color = HexToCuiColor("#fcf7f6"), Align = TextAnchor.MiddleCenter, FontSize = 18, Font = "robotocondensed-bold.ttf"
                }
            }
            , Layer, Layer + ".Nazad");
            CuiHelper.DestroyUi(player, Layer + ".Page");
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.2302085 0.2027778", AnchorMax = "0.2619792 0.2490829"
                }
                , Button = {
                    Color = HexToCuiColor("#000000", 50),
                }
                , Text = {
                    Text = $"{page}", Color = HexToCuiColor("#fcf7f6"), Align = TextAnchor.MiddleCenter, FontSize = 14, Font = "robotocondensed-regular.ttf"
                }
            }
            , Layer, Layer + ".Page");
            for (int i = 0; i < 50; i++) {
                CuiHelper.DestroyUi(player, Layer + $".{i}.StorageList");
            }
            foreach (var check in data.Select((i, t) => new {
                A = i, B = t - (page - 1) * 50
            }
            ).Skip((page - 1) * 50).Take(50)) {
                container.Add(new CuiButton {
                    RectTransform = {
                        AnchorMin = $"{0.203125 + check.B * 0.0605 - Math.Floor((float)check.B / 10) * 10 * 0.0605} {0.6962963 - Math.Floor((float)check.B / 10) * 0.105}", AnchorMax = $"{0.2541667 + check.B * 0.0605 - Math.Floor((float)check.B / 10) * 10 * 0.0605} {0.7870371 - Math.Floor((float)check.B / 10) * 0.105}", OffsetMax = "0 0"
                    }
                    , Button = {
                        Color = "0 0 0 0", Command = $"UI_FCaseHandler giveInventory {check.A.UniversalNumber} {check.B}",
                    }
                    , Text = {
                        Text = $"", Align = TextAnchor.LowerRight, Font = "robotocondensed-bold.ttf", FontSize = 15
                    }
                }
                , Layer, Layer + $".{check.B}.StorageList");
                container.Add(new CuiElement {
                    Parent = Layer + $".{check.B}.StorageList", Components = {
                        new CuiRawImageComponent {
                            FadeIn = 0.3f, Png = (string)ImageLibrary.Call("GetImage", check.A.Image)
                        }
                        , new CuiRectTransformComponent {
                            AnchorMin = "0 0", AnchorMax = "1 1"
                        }
                    }
                }
                );
            }
            CuiHelper.AddUi(player, container);
        }
#endregion
#region Functional
        private List<ItemSettings> GetRandom(SettingsCase rate) {
            List<ItemSettings> result = Pool.GetList<ItemSettings>();
            ;
            var lootitemcount = rate._itemList?.Count;
            int amount = Mathf.RoundToInt(UnityEngine.Random.Range(Convert.ToSingle(Mathf.Min(rate.CapacityMin, rate.CapacityMax)) * 100f, Convert.ToSingle(Mathf.Max(rate.CapacityMin, rate.CapacityMax)) * 100f) / 100f);
            if (lootitemcount > 0 && amount > lootitemcount && lootitemcount < 36) amount = (int)lootitemcount;
            for (int i = 0; i < amount; i++) {
                ItemSettings item = null;
                int iteration = 0;
                do {
                    iteration++;
                    ItemSettings randomItem = rate._itemList.GetRandom();
                    if (result.Contains(randomItem)) continue;
                    item = randomItem;
                }
                while (item == null && iteration < 1000);
                if (item != null) result.Add(item);
            }
            return result;
        }
        private void ClearContainer(LootContainer container) {
            if (container.inventory == null) {
                container.inventory = new ItemContainer();
                container.inventory.ServerInitialize(null, 36);
                container.inventory.GiveUID();
            }
            else {
                while (container.inventory.itemList.Count > 0) {
                    Item item = container.inventory.itemList[0];
                    item.RemoveFromContainer();
                    item.Remove(0f);
                }
                container.inventory.capacity = 36;
            }
            container.inventory.itemList.Clear();
            container.inventory.Clear();
            ItemManager.DoRemoves();
        }
        private int Take(IEnumerable<Item> itemList, string shortname, ulong skinId, int iAmount) {
            int num1 = 0;
            if (iAmount == 0) return 0;
            var list = Facepunch.Pool.GetList<Item>();
            foreach (var obj in itemList) {
                if (obj.info.shortname == shortname && obj.skin == skinId) {
                    int num2 = iAmount - num1;
                    if (num2 > 0) {
                        if (obj.amount > num2) {
                            obj.MarkDirty();
                            obj.amount -= num2;
                            num1 += num2;
                            break;
                        }
                        if (obj.amount <= num2) {
                            num1 += obj.amount;
                            list.Add(obj);
                        }
                        if (num1 == iAmount) break;
                    }
                }
            }
            foreach (var obj in list) obj.Remove();
            Facepunch.Pool.FreeList<Item>(ref list);
            return num1;
        }
        public int GetAmount(IEnumerable<Item> itemList, string shortname, ulong skinId) {
            int num = 0;
            foreach (Item obj in itemList) {
                if (obj.info.shortname == shortname && obj.skin == skinId) num += obj.amount;
            }
            return num;
        }
#endregion
#region ChatCommand && ConsoleCommand
        [ConsoleCommand("UI_FCaseHandler")]
        void FCaseHandler(ConsoleSystem.Arg args) {
            BasePlayer player = args.Player();
            if (args.Args[0] == "pageInventory") {
                int page = 1;
                if (int.TryParse(args.Args[1], out page)) {
                    OpenInventoryPage(player, page);
                }
            }
            else if (args.Args[0] == "giveInventory") {
                var find = _playerData[player.userID].FirstOrDefault(p => p.UniversalNumber == int.Parse(args.Args[1]));
                if (find == null) return;
                var findConfig = config._SettingsCase.FirstOrDefault(p => p.PrefabName == find.PrefabSpawn);
                if (findConfig == null) return;
                Vector3 forward = player.GetNetworkRotation() * Vector3.forward;
                forward.y = 0;
                var position = player.transform.position + forward.normalized * 1;
                var entity = GameManager.server.CreateEntity(find.PrefabSpawn, position);
                if (entity == null) return;
                entity.Spawn();
                var container = entity.GetComponent<LootContainer>();
                if (container == null) return;
                ClearContainer(container);
                var getList = GetRandom(findConfig);
                foreach (var kItemLoot in getList) {
                    Item item = kItemLoot.GiveItem();
                    if (item == null) {
                        item.Remove(0f);
                        continue;
                    }
                    item.OnVirginSpawn();
                    if (!item.MoveToContainer(container.inventory, -1, true)) {
                        item.Remove(0f);
                    }
                }
                container.inventory.capacity = container.inventory.itemList.Count;
                container.inventory.MarkDirty();
                container.inventory.SetFlag(ItemContainer.Flag.NoItemInput, true);
                container.SendNetworkUpdate();
                ItemManager.DoRemoves();
                _playerData[player.userID].Remove(find);
                CuiHelper.DestroyUi(player, Layer + $".{int.Parse(args.Args[2])}.StorageList");
            }
            else if (args.Args[0] == "buyItem") {
                var find = config._SettingsCase.FirstOrDefault(p => p.DisplayName == string.Join(" ", args.Args.Skip(1).ToArray()));
                if (find == null) return;
                int amount = GetAmount(player.inventory.AllItems(), config._itemSetup.ShortName, config._itemSetup.SkinID);
                if (amount < find.Price) {
                    player.ChatMessage("У вас недостаточно баланса для покупки!");
                    return;
                }
                Take(player.inventory.AllItems(), config._itemSetup.ShortName, config._itemSetup.SkinID, find.Price);
                if (find.TypeItem == TypeItem.Command) {
                    Server.Command(find.Command.Replace("%STEAMID%", player.UserIDString));
                }
                else if (find.TypeItem == TypeItem.Storage) {
                    var data = _playerData[player.userID];
                    data.Add(new StorageList {
                        PrefabSpawn = find.PrefabName, Image = find.Image, UniversalNumber = UnityEngine.Random.Range(Int32.MinValue, Int32.MaxValue)
                    }
                    );
                    FNotification?.CallHook("SendNotify", player, "Вы получили кейс!", "Что бы забрать кейс - /cstore", find.Image, "0 0", "0 0", 10);
                }
                else if (find.TypeItem == TypeItem.Item) {
                    var item = ItemManager.CreateByName(find.ShortName, find.Amount);
                    player.GiveItem(item);
                }
                var container = new CuiElementContainer();
                CuiHelper.DestroyUi(player, Layer + ".Balance");
                container.Add(new CuiButton {
                    RectTransform = {
                        AnchorMin = "0.07135417 0.1796296", AnchorMax = "0.1765625 0.2259259"
                    }
                    , Button = {
                        Command = $"", Color = HexToCuiColor("#4094b9"), Sprite = "assets/content/ui/ui.background.tile.psd"
                    }
                    , Text = {
                        Text = $"Баланс: {GetAmount(player.inventory.AllItems(), config._itemSetup.ShortName, config._itemSetup.SkinID)}", Color = HexToCuiColor("#fcf7f6"), Align = TextAnchor.MiddleCenter, FontSize = 16, Font = "robotocondensed-bold.ttf"
                    }
                    ,
                }
                , Layer, Layer + ".Balance");
                CuiHelper.AddUi(player, container);
            }
        }
        [ChatCommand("cstore")]
        void StoreOpen(BasePlayer player, string command, string[] args) {
            CuiHelper.DestroyUi(player, Layer);
            CuiElementContainer container = new CuiElementContainer();
#region Panel | Color Panel
            container.Add(new CuiPanel {
                CursorEnabled = true, RectTransform = {
                    AnchorMin = "0 0", AnchorMax = "1 1"
                }
                , Image = {
                    Color = "0 0 0 0.9", Material = "assets/content/ui/uibackgroundblur.mat"
                }
            }
            , "Overlay", Layer);
            container.Add(new CuiElement {
                Parent = Layer, Components = {
                    new CuiImageComponent {
                        Color = "0 0 0 0.9", Sprite = "assets/content/ui/ui.background.transparent.radial.psd"
                    }
                    , new CuiRectTransformComponent {
                        AnchorMin = "0 0", AnchorMax = "1 1", OffsetMax = "0 0"
                    }
                }
            }
            );
#endregion
#region Close
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "-100 -100", AnchorMax = "100 100", OffsetMax = "0 0"
                }
                , Button = {
                    Color = "0 0 0 0", Close = Layer
                }
                , Text = {
                    Text = ""
                }
            }
            , Layer);
#endregion
#region Panel Main
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.1927083 0.1972222", AnchorMax = "0.8088542 0.8055556"
                }
                , Button = {
                    Command = $"", Color = HexToCuiColor("#fffdfc", 5), Material = "assets/content/ui/uibackgroundblur.mat"
                }
                , Text = {
                    Text = "", Color = HexToCuiColor("#fffdfc"), Align = TextAnchor.MiddleLeft, FontSize = 13, Font = "robotocondensed-bold.ttf"
                }
                ,
            }
            , Layer);
#endregion
            CuiHelper.AddUi(player, container);
            OpenInventoryPage(player, 1);
        }
#endregion
#region Configuration
        private PluginConfig config;
        protected override void LoadDefaultConfig() {
            config = PluginConfig.DefaultConfig();
        }
        protected override void LoadConfig() {
            base.LoadConfig();
            config = Config.ReadObject<PluginConfig>();
            if (config.PluginVersion < Version) UpdateConfigValues();
            Config.WriteObject(config, true);
        }
        private void UpdateConfigValues() {
            PluginConfig baseConfig = PluginConfig.DefaultConfig();
            if (config.PluginVersion < new VersionNumber(1, 0, 0)) {
                PrintWarning("Config update detected! Updating config values...");
                PrintWarning("Config update completed!");
            }
            config.PluginVersion = Version;
        }
        protected override void SaveConfig() {
            Config.WriteObject(config);
        }
        public class ItemSetup {
            [JsonProperty("ShortName")]
            public string ShortName;
            [JsonProperty("SkinID")]
            public ulong SkinID;
        }
        public enum TypeItem {
            Storage = 1, Command = 2, Item = 3,
        }
        public class ItemSettings {
            [JsonProperty("ShortName")]
            public string ShortName;
            [JsonProperty("Min Amount")]
            public int MinAmount;
            [JsonProperty("Max Amount")]
            public int MaxAmount;
            [JsonProperty("SkinID")]
            public ulong SkinID;
            [JsonProperty("DisplayName")]
            public string DisplayName;
            public Item GiveItem() {
                var item = ItemManager.CreateByName(ShortName, UnityEngine.Random.Range(MinAmount, MaxAmount), SkinID);
                if (!string.IsNullOrEmpty(DisplayName)) item.name = DisplayName;
                return item;
            }
        }
        public class SettingsCase {
            [JsonProperty("DisplayName")]
            public string DisplayName;
            [JsonProperty("Type ( 1 - Storage, 2 - Command, 3 - Item )")]
            public TypeItem TypeItem;
            [JsonProperty("ShortName ( Type == 3 )")]
            public string ShortName;
            [JsonProperty("Amount ( Type == 3 )")]
            public int Amount;
            [JsonProperty("PrefabName ( Type == 1 )")]
            public string PrefabName;
            [JsonProperty("Image")]
            public string Image;
            [JsonProperty("Command ( Type == 2 )")]
            public string Command;
            [JsonProperty("Price")]
            public int Price;
            [JsonProperty("Минимальное количество предметов, которые могут выпасть из ящика ( Type == 1 )")]
            public int CapacityMin;
            [JsonProperty("Максимальное количество предметов, которые могут выпасть из ящика ( Type == 1 )")]
            public int CapacityMax;
            [JsonProperty("Предметы, которые могут выпасть из ящика ( Type == 1 )")]
            public List<ItemSettings> _itemList = new List<ItemSettings>();
        }
        private class PluginConfig {
            [JsonProperty("Настройка предмета, за которую будут покупаться различные товары")]
            public ItemSetup _itemSetup = new ItemSetup();
            [JsonProperty("Настройка продажи товаров")]
            public List<SettingsCase> _SettingsCase = new List<SettingsCase>();
            [JsonProperty("Версия конфигурации")]
            public VersionNumber PluginVersion = new VersionNumber();
            public static PluginConfig DefaultConfig() {
                return new PluginConfig() {
                    _itemSetup = new ItemSetup() {
                        ShortName = "bleach", SkinID = 2916405375,
                    }
                    , _SettingsCase = new List<SettingsCase>() {
                        new SettingsCase() {
                            DisplayName = "Кейс для переноски", TypeItem = TypeItem.Command, ShortName = "", Amount = 1, PrefabName = "", Image = "https://i.imgur.com/2P2lU8V.png", Command = "uranum.give case %STEAMID%", Price = 1, CapacityMin = 1, CapacityMax = 1, _itemList = new List<ItemSettings>()
                        }
                        , new SettingsCase() {
                            DisplayName = "Ящик с вертолета", TypeItem = TypeItem.Storage, ShortName = "", Amount = 1, PrefabName = "assets/bundled/prefabs/radtown/crate_normal.prefab", Image = "https://i.imgur.com/2P2lU8V.png", Command = "", Price = 100, CapacityMin = 2, CapacityMax = 4, _itemList = new List<ItemSettings>() {
                                new ItemSettings() {
                                    ShortName = "gunpowder", MinAmount = 1500, MaxAmount = 3500, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "sulfur", MinAmount = 3000, MaxAmount = 6000, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "metal.fragments", MinAmount = 1500, MaxAmount = 3000, SkinID = 0, DisplayName = ""
                                }
                            }
                        }
                        , new SettingsCase() {
                            DisplayName = "Элитный ящик", TypeItem = TypeItem.Storage, ShortName = "", Amount = 1, PrefabName = "assets/bundled/prefabs/radtown/crate_normal.prefab", Image = "https://i.imgur.com/2P2lU8V.png", Command = "", Price = 25, CapacityMin = 2, CapacityMax = 4, _itemList = new List<ItemSettings>() {
                                new ItemSettings() {
                                    ShortName = "gunpowder", MinAmount = 1500, MaxAmount = 3500, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "sulfur", MinAmount = 3000, MaxAmount = 6000, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "metal.fragments", MinAmount = 1500, MaxAmount = 3000, SkinID = 0, DisplayName = ""
                                }
                            }
                        }
                        , new SettingsCase() {
                            DisplayName = "Ящик с танка", TypeItem = TypeItem.Storage, ShortName = "", Amount = 1, PrefabName = "assets/bundled/prefabs/radtown/crate_normal.prefab", Image = "https://i.imgur.com/2P2lU8V.png", Command = "", Price = 25, CapacityMin = 2, CapacityMax = 4, _itemList = new List<ItemSettings>() {
                                new ItemSettings() {
                                    ShortName = "gunpowder", MinAmount = 1500, MaxAmount = 3500, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "sulfur", MinAmount = 3000, MaxAmount = 6000, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "metal.fragments", MinAmount = 1500, MaxAmount = 3000, SkinID = 0, DisplayName = ""
                                }
                            }
                        }
                        , new SettingsCase() {
                            DisplayName = "Ящик с компонентами", TypeItem = TypeItem.Storage, ShortName = "", Amount = 1, PrefabName = "assets/bundled/prefabs/radtown/crate_normal.prefab", Image = "https://i.imgur.com/2P2lU8V.png", Command = "", Price = 10, CapacityMin = 2, CapacityMax = 4, _itemList = new List<ItemSettings>() {
                                new ItemSettings() {
                                    ShortName = "gunpowder", MinAmount = 1500, MaxAmount = 3500, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "sulfur", MinAmount = 3000, MaxAmount = 6000, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "metal.fragments", MinAmount = 1500, MaxAmount = 3000, SkinID = 0, DisplayName = ""
                                }
                            }
                        }
                        , new SettingsCase() {
                            DisplayName = "Ящик с ресурсами", TypeItem = TypeItem.Storage, ShortName = "", Amount = 1, PrefabName = "assets/bundled/prefabs/radtown/crate_normal.prefab", Image = "https://i.imgur.com/2P2lU8V.png", Command = "", Price = 20, CapacityMin = 2, CapacityMax = 4, _itemList = new List<ItemSettings>() {
                                new ItemSettings() {
                                    ShortName = "gunpowder", MinAmount = 1500, MaxAmount = 3500, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "sulfur", MinAmount = 3000, MaxAmount = 6000, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "metal.fragments", MinAmount = 1500, MaxAmount = 3000, SkinID = 0, DisplayName = ""
                                }
                            }
                        }
                        , new SettingsCase() {
                            DisplayName = "Ящик ученых", TypeItem = TypeItem.Storage, ShortName = "", Amount = 1, PrefabName = "assets/bundled/prefabs/radtown/crate_normal.prefab", Image = "https://i.imgur.com/2P2lU8V.png", Command = "", Price = 25, CapacityMin = 2, CapacityMax = 4, _itemList = new List<ItemSettings>() {
                                new ItemSettings() {
                                    ShortName = "gunpowder", MinAmount = 1500, MaxAmount = 3500, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "sulfur", MinAmount = 3000, MaxAmount = 6000, SkinID = 0, DisplayName = "",
                                }
                                , new ItemSettings() {
                                    ShortName = "metal.fragments", MinAmount = 1500, MaxAmount = 3000, SkinID = 0, DisplayName = ""
                                }
                            }
                        }
                        ,
                    }
                    , PluginVersion = new VersionNumber(),
                }
                ;
            }
        }
#endregion
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху