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

FREE Crafter : 0.1.2 0.1.2

Нет прав для скачивания
C#:
using Newtonsoft.Json;
using Oxide.Core;
using Oxide.Core.Configuration;
using Oxide.Core.Plugins;
using Rust;
using System;
using UnityEngine;
namespace Oxide.Plugins {
    [Info("Crafter", "Night_Tiger", "0.1.2")]
    [Description("Позволяет крафтить оружия: lr300, m249, m92, spas12")]
    class Crafter : RustPlugin {
#region Fields
        static Crafter ins;
        private bool initialized;
#endregion
#region Oxide Hooks
        private void Loaded() {
            permission.RegisterPermission("crafter.admin", this);
            permission.RegisterPermission("crafter.use", this);
        }
        private void OnServerInitialized() {
            ins = this;
            // LoadData();
            initialized = true;
        }
#endregion
        private bool HasPermission(BasePlayer player, string perm) => permission.UserHasPermission(player.UserIDString, perm) || permission.UserHasPermission(player.UserIDString, "crafter.admin");
#region Commands
        [ChatCommand("craft")]
        void cmdCraftUser(BasePlayer player, string command, string[] args) {
            if (!permission.UserHasPermission(player.UserIDString, "crafter.use") && !player.IsAdmin) {
                SendReply(player, "У тебя нету прав использовать эту команду!");
                return;
            }
            if (args.Length == 0) player.ChatMessage($"<b><color=#ff0000ff>Крафт пулемета M249, винтовки LR-300, пистолета M92 Беретта или дробовика Spas 12!</color></b>\n<b><color=#ce422b> <size=15>Для крафта оружий используйте команды:</size></color></b>\n<b>/craft lr300</b>\n/craft m249\n/craft m92\n/craft spas");
            else if (args.Length == 1) {
                switch (args[0].ToLower()) {
                    case "lr300" : {
                        var mvk = player.inventory.GetAmount(317398316);
                        //317398316 metal.refined
                        var metal = player.inventory.GetAmount(69511070);
                        //69511070 metal.fragments
                        var rifle = player.inventory.GetAmount(176787552);
                        //176787552 riflebody
                        var spring = player.inventory.GetAmount(-1021495308);
                        //-1021495308 metalspring
                        if (mvk >= configData.CC.lr300.comp1 & metal >= configData.CC.lr300.comp2 & rifle >= configData.CC.lr300.comp3 & spring >= configData.CC.lr300.comp4) {
                            player.inventory.Take(null, 317398316, configData.CC.lr300.comp1);
                            player.inventory.Take(null, 69511070, configData.CC.lr300.comp2);
                            player.inventory.Take(null, 176787552, configData.CC.lr300.comp3);
                            player.inventory.Take(null, -1021495308, configData.CC.lr300.comp4);
                        }
                        else {
                            player.ChatMessage($"<b><color=#ff0000ff>Недостаточно ресурсов!</color></b>\n<b><color=#ce422b> <size=15>Для крафта оружия нужны ресурсы:</size></color></b>\n<b>Мвк <color=#ce422b>{configData.CC.lr300.comp1}</color> шт.(В наличии <color=#ce422b>{mvk}</color> шт.)</b>\nМеталл <color=#ce422b>{configData.CC.lr300.comp2}</color> шт.(В наличии <color=#ce422b>{metal}</color> шт.)\n<b>Корпус винтовки <color=#ce422b>{configData.CC.lr300.comp3}</color> шт.(В наличии <color=#ce422b>{rifle}</color> шт.)</b>\n<b>Пружины <color=#ce422b>{configData.CC.lr300.comp4}</color> шт.(В наличии <color=#ce422b>{spring}</color> шт.)</b>\n\nКак соберешь эти ресурсы, прописывай <color=#ce422b>/craft lr300</color>");
                            return;
                        }
                        player.inventory.GiveItem(ItemManager.CreateByItemID(-1812555177, 1));
                        player.ChatMessage($"<b>Оружие LR-300 успешно скрафчено!");
                        return;
                    }
                    case "m249" : {
                        var mvk = player.inventory.GetAmount(317398316);
                        var metal = player.inventory.GetAmount(69511070);
                        var rifle = player.inventory.GetAmount(176787552);
                        var spring = player.inventory.GetAmount(-1021495308);
                        if (mvk >= configData.CC.m249.comp1 & metal >= configData.CC.m249.comp2 & rifle >= configData.CC.m249.comp3 & spring >= configData.CC.m249.comp4) {
                            player.inventory.Take(null, 317398316, configData.CC.m249.comp1);
                            player.inventory.Take(null, 69511070, configData.CC.m249.comp2);
                            player.inventory.Take(null, 176787552, configData.CC.m249.comp3);
                            player.inventory.Take(null, -1021495308, configData.CC.m249.comp4);
                        }
                        else {
                            player.ChatMessage($"<b><color=#ff0000ff>Недостаточно ресурсов!</color></b>\n<b><color=#ce422b> <size=15>Для крафта оружия нужны ресурсы:</size></color></b>\n<b>Мвк <color=#ce422b>{configData.CC.m249.comp1}</color> шт.(В наличии <color=#ce422b>{mvk}</color> шт.)</b>\nМеталл <color=#ce422b>{configData.CC.m249.comp2}</color> шт.(В наличии <color=#ce422b>{metal}</color> шт.)\n<b>Корпус винтовки <color=#ce422b>{configData.CC.m249.comp3}</color> шт.(В наличии <color=#ce422b>{rifle}</color> шт.)</b>\n<b>Пружины <color=#ce422b>{configData.CC.m249.comp4}</color> шт.(В наличии <color=#ce422b>{spring}</color> шт.)</b>\n\nКак соберешь эти ресурсы, прописывай <color=#ce422b>/craft m249</color>");
                            return;
                        }
                        player.inventory.GiveItem(ItemManager.CreateByItemID(-2069578888, 1));
                        player.ChatMessage($"<b>Оружие M249 успешно скрафчено!");
                        return;
                    }
                    case "m92" : {
                        var mvk = player.inventory.GetAmount(317398316);
                        var pipe = player.inventory.GetAmount(95950017);
                        var semi = player.inventory.GetAmount(573926264);
                        var spring = player.inventory.GetAmount(-1021495308);
                        if (mvk >= configData.CC.m92.comp1 & pipe >= configData.CC.m92.comp2 & semi >= configData.CC.m92.comp3 & spring >= configData.CC.m92.comp4) {
                            player.inventory.Take(null, 317398316, configData.CC.m92.comp1);
                            player.inventory.Take(null, 95950017, configData.CC.m92.comp2);
                            player.inventory.Take(null, 573926264, configData.CC.m92.comp3);
                            player.inventory.Take(null, -1021495308, configData.CC.m92.comp4);
                        }
                        else {
                            player.ChatMessage($"<b><color=#ff0000ff>Недостаточно ресурсов!</color></b>\n<b><color=#ce422b> <size=15>Для крафта оружия нужны ресурсы:</size></color></b>\n<b>Мвк <color=#ce422b>{configData.CC.m92.comp1}</color> шт.(В наличии <color=#ce422b>{mvk}</color> шт.)</b>\nТрубы <color=#ce422b>{configData.CC.m92.comp2}</color> шт.(В наличии <color=#ce422b>{pipe}</color> шт.)\n<b>Корпус полуавтомата <color=#ce422b>{configData.CC.m92.comp3}</color> шт.(В наличии <color=#ce422b>{semi}</color> шт.)</b>\n<b>Пружины <color=#ce422b>{configData.CC.m92.comp4}</color> шт.(В наличии <color=#ce422b>{spring}</color> шт.)</b>\n\nКак соберешь эти ресурсы, прописывай <color=#ce422b>/craft m92</color>");
                            return;
                        }
                        player.inventory.GiveItem(ItemManager.CreateByItemID(-852563019, 1));
                        player.ChatMessage($"<b>Оружие M92 успешно скрафчено!");
                        return;
                    }
                    case "spas" : {
                        var mvk = player.inventory.GetAmount(317398316);
                        var pipe = player.inventory.GetAmount(95950017);
                        var metal = player.inventory.GetAmount(69511070);
                        var spring = player.inventory.GetAmount(-1021495308);
                        if (mvk >= configData.CC.spas.comp1 & pipe >= configData.CC.spas.comp2 & metal >= configData.CC.spas.comp3 & spring >= configData.CC.spas.comp4) {
                            player.inventory.Take(null, 317398316, configData.CC.spas.comp1);
                            player.inventory.Take(null, 95950017, configData.CC.spas.comp2);
                            player.inventory.Take(null, 69511070, configData.CC.spas.comp3);
                            player.inventory.Take(null, -1021495308, configData.CC.spas.comp4);
                        }
                        else {
                            player.ChatMessage($"<b><color=#ff0000ff>Недостаточно ресурсов!</color></b>\n<b><color=#ce422b> <size=15>Для крафта оружия нужны ресурсы:</size></color></b>\n<b>Мвк <color=#ce422b>{configData.CC.spas.comp1}</color> шт.(В наличии <color=#ce422b>{mvk}</color> шт.)</b>\nТрубы <color=#ce422b>{configData.CC.spas.comp2}</color> шт.(В наличии <color=#ce422b>{pipe}</color> шт.)\n<b>Металл <color=#ce422b>{configData.CC.spas.comp3}</color> шт.(В наличии <color=#ce422b>{metal}</color> шт.)</b>\n<b>Пружины <color=#ce422b>{configData.CC.spas.comp4}</color> шт.(В наличии <color=#ce422b>{spring}</color> шт.)</b>\n\nКак соберешь эти ресурсы, прописывай <color=#ce422b>/craft spas</color>");
                            return;
                        }
                        player.inventory.GiveItem(ItemManager.CreateByItemID(-41440462, 1));
                        player.ChatMessage($"<b>Оружие Spas 12 успешно скрафчено!");
                        return;
                    }
                }
            }
            else {
                return;
            }
        }
        [ChatCommand("admcraft")]
        void cmdCraftAdmin(BasePlayer player, string command, string[] args) {
            if (!permission.UserHasPermission(player.UserIDString, "crafter.admin") && !player.IsAdmin) return;
            if (args.Length == 0) player.ChatMessage($"<b><color=#ff0000ff>Крафт пулемета M249 или винтовки LR-300!</color></b>\n<b><color=#ce422b> <size=15>Для крафта оружий используйте команды:</size></color></b>\n<b>/admcraft lr300</b>\n/admcraft m249");
            else if (args.Length == 1 || args.Length == 2) {
                switch (args[0].ToLower()) {
                    case "lr300" : {
                        player.inventory.GiveItem(ItemManager.CreateByItemID(-1812555177, 1));
                        return;
                    }
                    case "m249" : {
                        player.inventory.GiveItem(ItemManager.CreateByItemID(-2069578888, 1));
                        return;
                    }
                    case "m92" : {
                        player.inventory.GiveItem(ItemManager.CreateByItemID(-852563019, 1));
                        return;
                    }
                    case "spas" : {
                        player.inventory.GiveItem(ItemManager.CreateByItemID(-41440462, 1));
                        return;
                    }
                }
            }
            else {
                return;
            }
        }
#endregion
#region Config
        private ConfigData configData;
        class ConfigData {
            [JsonProperty(PropertyName = "Компоненты необходимые для крафта")]
            public CrafterComponents CC {
                get;
                set;
            }
            public class CrafterComponents {
                [JsonProperty(PropertyName = "Для винтовки LR-300")]
                public CClr300 lr300 {
                    get;
                    set;
                }
                [JsonProperty(PropertyName = "Для пулемета M249")]
                public CCm249 m249 {
                    get;
                    set;
                }
                [JsonProperty(PropertyName = "Для пистолета M92")]
                public CCm92 m92 {
                    get;
                    set;
                }
                [JsonProperty(PropertyName = "Для дробовика Spas12")]
                public CCspas spas {
                    get;
                    set;
                }
                public class CClr300 {
                    [JsonProperty(PropertyName = "Металл высокого качества")]
                    public int comp1 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Фрагменты металла")]
                    public int comp2 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Корпус винтовки")]
                    public int comp3 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Пружины")]
                    public int comp4 {
                        get;
                        set;
                    }
                }
                public class CCm249 {
                    [JsonProperty(PropertyName = "Металл высокого качества")]
                    public int comp1 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Фрагменты металла")]
                    public int comp2 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Корпус винтовки")]
                    public int comp3 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Пружины")]
                    public int comp4 {
                        get;
                        set;
                    }
                }
                public class CCm92 {
                    [JsonProperty(PropertyName = "Металл высокого качества")]
                    public int comp1 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Трубы")]
                    public int comp2 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Корпус полуавтомата")]
                    public int comp3 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Пружины")]
                    public int comp4 {
                        get;
                        set;
                    }
                }
                public class CCspas {
                    [JsonProperty(PropertyName = "Металл высокого качества")]
                    public int comp1 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Трубы")]
                    public int comp2 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Фрагменты металла")]
                    public int comp3 {
                        get;
                        set;
                    }
                    [JsonProperty(PropertyName = "Пружины")]
                    public int comp4 {
                        get;
                        set;
                    }
                }
            }
        }
        protected override void LoadConfig() {
            base.LoadConfig();
            configData = Config.ReadObject<ConfigData>();
            Config.WriteObject(configData, true);
        }
        protected override void LoadDefaultConfig() => configData = GetBaseConfig();
        protected override void SaveConfig() => Config.WriteObject(configData, true);
        private ConfigData GetBaseConfig() {
            return new ConfigData {
                CC = new ConfigData.CrafterComponents {
                    lr300 = new ConfigData.CrafterComponents.CClr300 {
                        comp1 = 60, comp2 = 200, comp3 = 2, comp4 = 10
                    }
                    , m249 = new ConfigData.CrafterComponents.CCm249 {
                        comp1 = 120, comp2 = 400, comp3 = 4, comp4 = 20
                    }
                    , m92 = new ConfigData.CrafterComponents.CCm92 {
                        comp1 = 15, comp2 = 3, comp3 = 1, comp4 = 2
                    }
                    , spas = new ConfigData.CrafterComponents.CCspas {
                        comp1 = 15, comp2 = 3, comp3 = 200, comp4 = 1
                    }
                }
            }
            ;
        }
#endregion
    }
}

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

Другие ресурсы пользователя 15FPS

Сверху