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

FREE QuickMenu : 0.0.7 0.0.7

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Collections.Generic;
using UnityEngine;
using Oxide.Game.Rust.Cui;
using System;
using System.Linq;
using Oxide.Core.Configuration;
using Oxide.Core;

namespace Oxide.Plugins
{
    [Info("QuickMenu", "Xianith", "0.0.7", ResourceId = 2419)]

    class QuickMenu : RustPlugin
    {
        #region Config
        private bool Changed = false;

        private Dictionary<string, string> Anchors = new Dictionary<string, string>
        {
           {"BotAnchMin", "0.02 0.025" }, //0  +.200
           {"BotAnchMax", "0.97 0.2" }, //0  +.2
           {"MidBotAnchMin", "0.02 0.225" },
           {"MidBotAnchMax", "0.97 0.4" },
           {"MidTopAnchMin", "0.02 0.425" },
           {"MidTopAnchMax", "0.97 0.6" },
           {"TopAnchMin", "0.02 0.625" }, //0  +.37
           {"TopAnchMax", "0.97 0.97" },
        };

        private Dictionary<ulong, screen> QuickMenuInfo = new Dictionary<ulong, screen>();
        class screen
        {
            public bool open;
        }

        private string TopButtonColor;
        private string TopButtonText;
        private string TopButtonFontColor;
        private int TopButtonFontSize;
        private string TopButtonCommand;

        private string MidTopButtonColor;
        private string MidTopButtonText;
        private int MidTopButtonFontSize;
        private string MidTopButtonFontColor;
        private string MidTopButtonCommand;

        private string MidBotButtonColor;
        private string MidBotButtonText;
        private int MidBotButtonFontSize;
        private string MidBotButtonFontColor;
        private string MidBotButtonCommand;

        private string BotButtonColor;
        private string BotButtonText;
        private int BotButtonFontSize;
        private string BotButtonFontColor;
        private string BotButtonCommand;

        private string BackgroundColor;

        private object GetConfig(string menu, string datavalue, object defaultValue)
        {
            var data = Config[menu] as Dictionary<string, object>;
            if (data == null)
            {
                data = new Dictionary<string, object>();
                Config[menu] = data;
                Changed = true;
            }
            object value;
            if (!data.TryGetValue(datavalue, out value))
            {
                value = defaultValue;
                data[datavalue] = value;
                Changed = true;
            }
            return value;
        }
        
        void LoadVariables()
        {
            TopButtonFontColor = Convert.ToString(GetConfig("Top Button", "Font Color", "0.60 0.70 0.51 1.0"));
            TopButtonFontSize = Convert.ToInt32(GetConfig("Top Button", "Font Size", "15"));
            TopButtonColor = Convert.ToString(GetConfig("Top Button", "Color", "0.31 0.37 0.20 1.0"));
            TopButtonText = Convert.ToString(GetConfig("Top Button", "Text", "Trade Accept"));
            TopButtonCommand = Convert.ToString(GetConfig("Top Button", "Command", "chat.say /trade accept"));

            MidTopButtonFontColor = Convert.ToString(GetConfig("Top Middle Button", "Font Color", "0.56 0.74 0.89 1.0"));
            MidTopButtonFontSize = Convert.ToInt32(GetConfig("Top Middle Button", "Font Size", "15"));
            MidTopButtonColor = Convert.ToString(GetConfig("Top Middle Button", "Color", "0.16 0.34 0.49 1.0"));
            MidTopButtonText = Convert.ToString(GetConfig("Top Middle Button", "Text", "Teleport Cancel"));
            MidTopButtonCommand = Convert.ToString(GetConfig("Top Middle Button", "Command", "chat.say /tpc"));

            MidBotButtonFontColor = Convert.ToString(GetConfig("Mid Bot Button", "Font Color", "0.96 0.60 0.55 1.0"));
            MidBotButtonFontSize = Convert.ToInt32(GetConfig("Mid Bot Button", "Font Size", "15"));
            MidBotButtonColor = Convert.ToString(GetConfig("Mid Bot Button", "Color", "0.56 0.20 0.15 1.0"));
            MidBotButtonText = Convert.ToString(GetConfig("Mid Bot Button", "Text", "Remover"));
            MidBotButtonCommand = Convert.ToString(GetConfig("Mid Bot Button", "Command", "chat.say /remove"));

            BotButtonFontColor = Convert.ToString(GetConfig("Bot Button", "Font Color", "1 1 1 1.0"));
            BotButtonFontSize = Convert.ToInt32(GetConfig("Bot Button", "Font Size", "15"));
            BotButtonColor = Convert.ToString(GetConfig("Bot Button", "Color", "0.34 0.34 0.34 1.0"));
            BotButtonText = Convert.ToString(GetConfig("Bot Button", "Text", "CANCEL"));

            BackgroundColor = Convert.ToString(GetConfig("Settings", "Background Color", "0.1 0.1 0.1 0.98"));

            if (!Changed) return;
            SaveConfig();
            Changed = false;
        }

        protected override void LoadDefaultConfig()
        {
            Config.Clear();
            LoadVariables();
        }

        void Loaded()
        {
            LoadVariables();
        }

        void Unload()
        {
            foreach (BasePlayer p in BasePlayer.activePlayerList)
            {
                DestroyGui(p);
            }
        }

        private void DestroyGui(BasePlayer player)
        {
            if (QuickMenuInfo.ContainsKey(player.userID))
                QuickMenuInfo.Remove(player.userID);
            CuiHelper.DestroyUi(player, "quickMenu");
        }
        #endregion

        #region GUI Display
        private void OpenQuickMenu(BasePlayer player)
        {
            if (!QuickMenuInfo.ContainsKey(player.userID))
                QuickMenuGuiCreate(player);
            return;
        }

        private void DestroyQuickMenu(BasePlayer player)
        {
            if (QuickMenuInfo.ContainsKey(player.userID))
                if (QuickMenuInfo[player.userID].open)
                    QuickMenuInfo[player.userID].open = false;
            CuiHelper.DestroyUi(player, "quickMenu");
        }
        #endregion

        #region GUI Generation
        public void QuickMenuGuiCreate(BasePlayer player)
        {
            if (player == null)
                return;

            var quickMenuElements = new CuiElementContainer();
            var quickMain = quickMenuElements.Add(new CuiPanel
            {
                Image = { Color = $"{BackgroundColor}" },
                RectTransform = { AnchorMin = "0.395 0.25", AnchorMax = "0.59 0.6" },
                CursorEnabled = true,
            }, "Overlay", "quickMenu");

            // Cancel Button
            quickMenuElements.Add(new CuiButton
            {
                Button = { Command = $"UI_QuickMenu", Color = $"{BotButtonColor}" },
                RectTransform = { AnchorMin = Anchors["BotAnchMin"], AnchorMax = Anchors["BotAnchMax"] },
                Text = { Color = $"{BotButtonFontColor}", Text = $"{BotButtonText}", FontSize = BotButtonFontSize, Align = TextAnchor.MiddleCenter }
            }, quickMain);

            // Bot Button
            quickMenuElements.Add(new CuiButton
            {
                Button = { Command = $"UI_QuickMenu_Cmd {MidBotButtonCommand}", Color = $"{MidBotButtonColor}" },
                RectTransform = { AnchorMin = Anchors["MidBotAnchMin"], AnchorMax = Anchors["MidBotAnchMax"] },
                Text = { Color = $"{MidBotButtonFontColor}", Text = $"{MidBotButtonText}", FontSize = MidBotButtonFontSize, Align = TextAnchor.MiddleCenter }
            }, quickMain);

            // Middle Button
            quickMenuElements.Add(new CuiButton
            {
                Button = { Command = $"UI_QuickMenu_Cmd {MidTopButtonCommand}", Color = $"{MidTopButtonColor}" },
                RectTransform = { AnchorMin = Anchors["MidTopAnchMin"], AnchorMax = Anchors["MidTopAnchMax"] },
                Text = { Color = $"{MidTopButtonFontColor}", Text = $"{MidTopButtonText}", FontSize = MidTopButtonFontSize, Align = TextAnchor.MiddleCenter }
            }, quickMain);

            // Top Button
            quickMenuElements.Add(new CuiButton
            {
                Button = { Command = $"UI_QuickMenu_Cmd {TopButtonCommand}", Color = $"{TopButtonColor}" },
                RectTransform = { AnchorMin = Anchors["TopAnchMin"], AnchorMax = Anchors["TopAnchMax"] },
                Text = { Color = $"{TopButtonFontColor}", Text = $"{TopButtonText}", FontSize = TopButtonFontSize, Align = TextAnchor.MiddleCenter }
            }, quickMain);
            CuiHelper.AddUi(player, quickMenuElements);
        }
        #endregion

        #region Commands
        [ChatCommand("qm")]
            void cmdQuickMenu(BasePlayer player, string command, string[] args)
            {
                if (QuickMenuInfo.ContainsKey(player.userID))
                    if (!QuickMenuInfo[player.userID].open)
                    {
                        QuickMenuInfo[player.userID].open = true;
                        QuickMenuGuiCreate(player);
                    }
                    else
                        DestroyQuickMenu(player);
                else
                    QuickMenuInfo.Add(player.userID, new screen { open = false });
                    OpenQuickMenu(player);
            }

        [ConsoleCommand("UI_QuickMenu")]
            private void cmdUI_QuickMenu(ConsoleSystem.Arg arg)
            {
                var player = arg.Connection.player as BasePlayer;
                if (player == null)
                    return;

                if (QuickMenuInfo.ContainsKey(player.userID))
                    if (!QuickMenuInfo[player.userID].open)
                    {
                        QuickMenuInfo[player.userID].open = true;
                        QuickMenuGuiCreate(player);
                    }
                    else
                        DestroyQuickMenu(player);
                else
                    QuickMenuInfo.Add(player.userID, new screen { open = false });
                    OpenQuickMenu(player);
            }

        [ConsoleCommand("UI_QuickMenu_Cmd")]
            private void cmdUI_QuickMenu_Cmd(ConsoleSystem.Arg arg)
            {
                var cmd = "";
                var player = arg.Connection.player as BasePlayer;
                if (player == null)
                    return;

                CuiHelper.DestroyUi(player, "quickMenu");
                QuickMenuInfo[player.userID].open = false;

               cmd = string.Join(" ", arg.Args.Skip(0).ToArray());
               player.Command(cmd);
            }
        #endregion
    }
}

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