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

FREE FastLoot : 0.0.4 0.0.4

Нет прав для скачивания
C#:
using System.Collections.Generic;
using Newtonsoft.Json;
using Oxide.Game.Rust.Cui;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("Fast Loot", "TopPlugin.ru", "0.0.4")]
    [Description("Loot crates quickly")]
    class FastLoot : RustPlugin
    {
        #region Var
        private const string FastLootLayer = "UI_FastLootLayer";
        private const string perm = "fastloot.use";
        #endregion

        #region Config
        private Configuration config;

        private class Configuration
        {
            [JsonProperty("Color background")]
            public string colorBackground;
            [JsonProperty("Color font")]
            public string colorFont;
            [JsonProperty("Coordinates OffsetMin")]
            public string OffsetMin;
            [JsonProperty("Coordinates OffsetMax")]
            public string OffsetMax;
        }

        private Configuration GetDefaultConfig()
        {
            return new Configuration
            {
                colorBackground = "0.968627453 0.921631568632 0.882352948 0.03529412",
                colorFont = "0.87 0.84 0.80 1.00",
                OffsetMin = "290 510",
                OffsetMax = "573 540"
            };
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();

            try
            {
                config = Config.ReadObject<Configuration>();
            }
            catch
            {
                LoadDefaultConfig();
            }

            SaveConfig();
        }

        protected override void LoadDefaultConfig()
        {
            PrintError("Configuration file is corrupt(or not exists), creating new one!");
            config = GetDefaultConfig();
        }

        protected override void SaveConfig()
        {
            Config.WriteObject(config);
        }
        #endregion  

        #region Hook
        void OnLootEntity(BasePlayer player, LootContainer loot)
        {
            if (!permission.UserHasPermission(player.UserIDString, perm))
                return;
            UIFastLoot(player);
        }
        private void OnLootEntityEnd(BasePlayer player, LootContainer entity) => CuiHelper.DestroyUi(player, FastLootLayer);
        private void Init() => permission.RegisterPermission(perm, this);
        void Unload()
        {
            foreach (BasePlayer player in BasePlayer.activePlayerList)
                CuiHelper.DestroyUi(player, FastLootLayer);
        }

        #endregion

        #region Lang
        protected override void LoadDefaultMessages()
        {
            lang.RegisterMessages(new Dictionary<string, string>
            {
                ["FASTLOOT_TAKE"] = "Take all",

            }, this);

            lang.RegisterMessages(new Dictionary<string, string>
            {
                ["FASTLOOT_TAKE"] = "Забрать все",

            }, this, "ru");
        }

        #endregion

        #region Command

        [ConsoleCommand("UI_FastLoot")]
        void FastLootCMD(ConsoleSystem.Arg arg)
        {
            BasePlayer player = arg.Player();
            if (player == null)
                return;
            if (!permission.UserHasPermission(player.UserIDString, perm))
                return;
            if (player.inventory?.loot?.entitySource is LootContainer)
            {
                StorageContainer loot = player.inventory?.loot?.entitySource as StorageContainer;
                if (loot != null)
                {
                    loot.MoveAllInventoryItems(loot.inventory, player.inventory.containerMain);
                }
            }
           
        }
        #endregion

        #region UI
        private void UIFastLoot(BasePlayer player)
        {
            CuiHelper.DestroyUi(player, FastLootLayer);
            CuiElementContainer container = new CuiElementContainer();

            container.Add(new CuiPanel
            {
                RectTransform = { AnchorMin = "0.5 0", AnchorMax = "0.5 0", OffsetMin = config.OffsetMin, OffsetMax = config.OffsetMax },
                Image = { Color = config.colorBackground, Material = "assets/content/ui/uibackgroundblur-ingamemenu.mat" },
            }, "Overlay", FastLootLayer);

            container.Add(new CuiButton
            {
                RectTransform = { AnchorMin = "0 0", AnchorMax = "1 1" },
                Button = { Color = "0 0 0 0", Command = "UI_FastLoot" },
                Text = { Text = lang.GetMessage("FASTLOOT_TAKE", this, player.UserIDString),FontSize = 17, Align = TextAnchor.MiddleCenter, Color = config.colorFont }
            }, FastLootLayer);
            CuiHelper.AddUi(player, container);
        }
        #endregion
    }
}

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