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

FREE XInfoMenu : 1.0.3 1.0.3

Нет прав для скачивания
C#:
using System.Collections.Generic;
using System;
using UnityEngine;
using System.Linq;
using Oxide.Game.Rust.Cui;
using Newtonsoft.Json;
using Oxide.Core.Plugins;
namespace Oxide.Plugins {
    [Info("XInfoMenu", "Monster.", "1.0.3")]
    class XInfoMenu : RustPlugin {
#region Reference
        [PluginReference]
        private Plugin ImageLibrary;
#endregion
#region Configuration
        private InfoMenuConfig config;
        private class InfoMenuConfig {
            internal class GeneralSetting {
                [JsonProperty("Открывать меню когда игрок зашел на сервер")]
                public bool ConnectOpen;
                [JsonProperty("Перезагружать картинки после перезагрузки плагина")]
                public bool ReloadImage;
                [JsonProperty("Отображать кнопки переключения страниц если в категории только одна страница")]
                public bool ButtonNext;
                [JsonProperty("КД действий с меню")]
                public float Cooldowns;
            }
            internal class MessageSetting {
                [JsonProperty("Список уникальных имен сообщений - [ Настройка текста в lang ]")]
                public List<string> ListMessage;
                [JsonProperty("Интервал сообщений в чат")]
                public float TimeMessage;
                [JsonProperty("SteamID профиля для кастомной аватарки")]
                public ulong SteamID;
                [JsonProperty("Включить сообщения в чат")]
                public bool MessageUse;
            }
            internal class PanelMessageSetting {
                [JsonProperty("Список уникальных имен сообщений - [ Настройка текста в lang ]")]
                public List<string> ListMessage;
                [JsonProperty("Интервал сообщений под слотами")]
                public float TimeMessage;
                [JsonProperty("Включить сообщения под слотами")]
                public bool MessageUse;
            }
            internal class GUISetting {
                [JsonProperty("Цвет фона_1")]
                public string ColorBackgroundO;
                [JsonProperty("Цвет фона_2")]
                public string ColorBackgroundT;
                [JsonProperty("Материал фона_1")]
                public string MaterialBackgroundO;
                [JsonProperty("Материал фона_2")]
                public string MaterialBackgroundT;
                [JsonProperty("Цвет кнопок")]
                public string ColorButton;
                [JsonProperty("Цвет активной кнопки")]
                public string ColorAButton;
            }
            internal class ElementSetting {
                [JsonProperty("Цвет элемента")]
                public string ColorElement;
                [JsonProperty("Материал элемента")]
                public string MaterialElement;
                [JsonProperty("OffsetMin")]
                public string OffsetMinElement;
                [JsonProperty("OffsetMax")]
                public string OffsetMaxElement;
                public ElementSetting(string color, string material, string omin, string omax) {
                    ColorElement = color;
                    MaterialElement = material;
                    OffsetMinElement = omin;
                    OffsetMaxElement = omax;
                }
            }
            internal class ImageSetting {
                [JsonProperty("Уникальное имя картинки")]
                public string NameImage;
                [JsonProperty("Ссылка на картинку")]
                public string URLImage;
                [JsonProperty("OffsetMin")]
                public string OffsetMinImage;
                [JsonProperty("OffsetMax")]
                public string OffsetMaxImage;
                public ImageSetting(string nameimage, string urlimage, string omin, string omax) {
                    NameImage = nameimage;
                    URLImage = urlimage;
                    OffsetMinImage = omin;
                    OffsetMaxImage = omax;
                }
            }
            internal class TextSetting {
                [JsonProperty("Уникальное имя текста блока - [ Настройка текста в lang ]")]
                public string NameText;
                [JsonProperty("OffsetMin")]
                public string OffsetMinText;
                [JsonProperty("OffsetMax")]
                public string OffsetMaxText;
                [JsonProperty("TextAnchor [ Выравнивание текста ] | 0 - 8")]
                public int TextAnchor;
                [JsonProperty("Цвет текста")]
                public string TextColor;
                public TextSetting(string nametext, string omin, string omax, int ta, string tcolor) {
                    NameText = nametext;
                    OffsetMinText = omin;
                    OffsetMaxText = omax;
                    TextAnchor = ta;
                    TextColor = tcolor;
                }
            }
            internal class ButtonSetting {
                [JsonProperty("Уникальное имя кнопки - [ Настройка текста в lang ]")]
                public string NameButton;
                [JsonProperty("OffsetMin")]
                public string OffsetMinButton;
                [JsonProperty("OffsetMax")]
                public string OffsetMaxButton;
                [JsonProperty("TextAnchor [ Выравнивание текста ] | 0 - 8")]
                public int ButtonAnchor;
                [JsonProperty("Команда")]
                public string ButtonCommand;
                [JsonProperty("Цвет кнопки")]
                public string ButtonColor;
                [JsonProperty("Цвет текста")]
                public string TextColor;
                public ButtonSetting(string namebutton, string omin, string omax, int ba, string bc, string bcolor, string tcolor) {
                    NameButton = namebutton;
                    OffsetMinButton = omin;
                    OffsetMaxButton = omax;
                    ButtonAnchor = ba;
                    ButtonCommand = bc;
                    ButtonColor = bcolor;
                    TextColor = tcolor;
                }
            }
            internal class IMenuSetting {
                [JsonProperty("Настройка элементов")]
                public List<ElementSetting> Element;
                [JsonProperty("Настройка картинки")]
                public List<ImageSetting> Image;
                [JsonProperty("Настройка блока текста")]
                public List<TextSetting> Text;
                [JsonProperty("Настройка кнопок")]
                public List<ButtonSetting> Button;
                public IMenuSetting(List<ElementSetting> element, List<ImageSetting> image, List<TextSetting> text, List<ButtonSetting> button) {
                    Element = element;
                    Image = image;
                    Text = text;
                    Button = button;
                }
            }
            [JsonProperty("Общие настройки")]
            public GeneralSetting Setting;
            [JsonProperty("Настройка сообщений в чат")]
            public MessageSetting Message;
            [JsonProperty("Настройка сообщений под слотами")]
            public PanelMessageSetting PanelMessage;
            [JsonProperty("Настройки GUI")]
            public GUISetting GUI;
            [JsonProperty("Настройка кнопок и страниц")]
            public Dictionary<string, List<IMenuSetting>> IMenu;
            public static InfoMenuConfig GetNewConfiguration() {
                return new InfoMenuConfig {
                    Setting = new GeneralSetting {
                        ConnectOpen = false, ReloadImage = true, ButtonNext = true, Cooldowns = 0.75f
                    }
                    , Message = new MessageSetting {
                        ListMessage = new List<string> {
                            "СООБЩЕНИЕ1.1", "СООБЩЕНИЕ1.2", "СООБЩЕНИЕ1.3"
                        }
                        , TimeMessage = 300.0f, SteamID = 0, MessageUse = true
                    }
                    , PanelMessage = new PanelMessageSetting {
                        ListMessage = new List<string> {
                            "СООБЩЕНИЕ2.1", "СООБЩЕНИЕ2.2", "СООБЩЕНИЕ2.3"
                        }
                        , TimeMessage = 30.0f, MessageUse = false
                    }
                    , GUI = new GUISetting {
                        ColorBackgroundO = "0.517 0.521 0.509 0.95", ColorBackgroundT = "0.217 0.221 0.209 0.95", MaterialBackgroundO = "assets/icons/greyout.mat", MaterialBackgroundT = "", ColorButton = "0.517 0.521 0.509 0.5", ColorAButton = "0.53 0.77 0.35 1"
                    }
                    , IMenu = new Dictionary<string, List<IMenuSetting>> {
                        ["ПРАВИЛА"]
                        = new List<IMenuSetting> {
                            new IMenuSetting(new List<ElementSetting> {
                                new ElementSetting("0.517 0.521 0.509 0.95", "assets/icons/greyout.mat", "-190 -11.25", "-185 198.75"), new ElementSetting("0.517 0.521 0.509 0.95", "assets/icons/greyout.mat", "-395 -11.25", "395 -6.25")
                            }
                            , new List<ImageSetting> {
                                new ImageSetting("ПРАВИЛА1.1", "https://i.imgur.com/VSrY1ZK.png", "-395 -1.25", "-195 198.75")
                            }
                            , new List<TextSetting> {
                                new TextSetting("ПРАВИЛА2.1", "-180 -1.25", "395 198.75", 4, "0.75 0.75 0.75 0.75"), new TextSetting("ПРАВИЛА2.2", "-395 -169", "395 -16.75", 4, "0.75 0.75 0.75 0.75")
                            }
                            , new List<ButtonSetting> {
                            }
                            )
                        }
                        , ["ИНФА"] = new List<IMenuSetting> {
                            new IMenuSetting(new List<ElementSetting> {
                                new ElementSetting("0.517 0.521 0.509 0.95", "assets/icons/greyout.mat", "-190 -11.25", "-185 198.75"), new ElementSetting("0.517 0.521 0.509 0.95", "assets/icons/greyout.mat", "-395 -11.25", "395 -6.25")
                            }
                            , new List<ImageSetting> {
                                new ImageSetting("ИНФА1.1", "https://i.imgur.com/VSrY1ZK.png", "-395 -1.25", "-195 198.75")
                            }
                            , new List<TextSetting> {
                                new TextSetting("ИНФА2.1", "-180 -1.25", "395 198.75", 4, "0.75 0.75 0.75 0.75"), new TextSetting("ИНФА2.2", "-395 -169", "395 -16.75", 4, "0.75 0.75 0.75 0.75")
                            }
                            , new List<ButtonSetting> {
                            }
                            )
                        }
                        , ["ПЛАГИНЫ"] = new List<IMenuSetting> {
                            new IMenuSetting(new List<ElementSetting> {
                                new ElementSetting("0.517 0.521 0.509 0.95", "assets/icons/greyout.mat", "-190 -11.25", "-185 198.75"), new ElementSetting("0.517 0.521 0.509 0.95", "assets/icons/greyout.mat", "-395 -11.25", "395 -6.25")
                            }
                            , new List<ImageSetting> {
                                new ImageSetting("ПЛАГИНЫ1.1", "https://i.imgur.com/VSrY1ZK.png", "-395 -1.25", "-195 198.75")
                            }
                            , new List<TextSetting> {
                                new TextSetting("ПЛАГИНЫ2.1", "-180 -1.25", "395 198.75", 4, "0.75 0.75 0.75 0.75"), new TextSetting("ПЛАГИНЫ2.2", "-395 -169", "395 -16.75", 4, "0.75 0.75 0.75 0.75")
                            }
                            , new List<ButtonSetting> {
                                new ButtonSetting("ПЛАГИНЫ3.1", "-180 168.75", "-100 198.75", 4, "", "0.517 0.521 0.509 0.5", "0.75 0.75 0.75 0.75")
                            }
                            )
                        }
                    }
                }
                ;
            }
        }
        protected override void LoadConfig() {
            base.LoadConfig();
            try {
                config = Config.ReadObject<InfoMenuConfig>();
            }
            catch {
                PrintWarning("Ошибка чтения конфигурации! Создание дефолтной конфигурации!");
                LoadDefaultConfig();
            }
            SaveConfig();
        }
        protected override void LoadDefaultConfig() => config = InfoMenuConfig.GetNewConfiguration();
        protected override void SaveConfig() => Config.WriteObject(config);
#endregion
        private Dictionary<BasePlayer, DateTime> Cooldowns = new Dictionary<BasePlayer, DateTime>();
#region Commands
        [ChatCommand("help")]
        private void cmdOpenGUI(BasePlayer player) => GUIBackground(player);
        [ChatCommand("info")]
        private void cmdOpenGUII(BasePlayer player) => GUIBackground(player);
        [ConsoleCommand("page")]
        private void ccmdPage(ConsoleSystem.Arg args) {
            BasePlayer player = args.Player();
            if (Cooldowns.ContainsKey(player)) if (Cooldowns[player].Subtract(DateTime.Now).TotalSeconds >= 0) return;
            Effect x = new Effect("assets/bundled/prefabs/fx/notice/loot.drag.grab.fx.prefab", player, 0, new Vector3(), new Vector3());
            int page = int.Parse(args.Args[1]);
            int Page = int.Parse(args.Args[2]);
            switch (args.Args[0]) {
                case "page_b" : {
                    GUIPage(player, int.Parse(args.Args[1]), 0);
                    GUIButton(player, int.Parse(args.Args[1]));
                    break;
                }
                case "next" : {
                    GUIPage(player, page, Page + 1);
                    break;
                }
                case "back" : {
                    GUIPage(player, page, Page - 1);
                    break;
                }
            }
            Cooldowns[player] = DateTime.Now.AddSeconds(config.Setting.Cooldowns);
            EffectNetwork.Send(x, player.Connection);
        }
#endregion
#region Hooks
        private void OnServerInitialized() {
            PrintWarning("\n-----------------------------\n" + "     Author - Monster\n" + "     VK - vk.com/idannopol\n" + "     Discord - Monster#4837\n" + "     Config - v.1113\n" + "-----------------------------");
            foreach (var image in config.IMenu) foreach(var iimage in image.Value) iimage.Image.ForEach(i => {
                if (!config.Setting.ReloadImage) {
                    if (!ImageLibrary.Call<bool>("HasImage", i.NameImage + 300)) ImageLibrary.Call("AddImage", i.URLImage, i.NameImage + 300);
                }
                else ImageLibrary.Call("AddImage", i.URLImage, i.NameImage + 300);
            }
            );
            if (config.Message.MessageUse) Broadcast();
            if (config.PanelMessage.MessageUse) PanelBroadcast();
            InitializeLang();
        }
        private void Unload() {
            foreach (BasePlayer player in BasePlayer.activePlayerList) {
                CuiHelper.DestroyUi(player, ".IMenuGUI");
                CuiHelper.DestroyUi(player, ".MainText");
            }
        }
        private void Broadcast() {
            foreach (BasePlayer player in BasePlayer.activePlayerList) Player.Reply(player, lang.GetMessage(config.Message.ListMessage.GetRandom(), this, player.UserIDString), config.Message.SteamID);
            timer.Once(config.Message.TimeMessage, Broadcast);
        }
        private void PanelBroadcast() {
            foreach (BasePlayer player in BasePlayer.activePlayerList) PanelMGUI(player);
            timer.Once(config.PanelMessage.TimeMessage, PanelBroadcast);
        }
        private void OnPlayerConnected(BasePlayer player) {
            if (player.IsReceivingSnapshot) {
                NextTick(() => OnPlayerConnected(player));
                return;
            }
            if (config.Setting.ConnectOpen) GUIBackground(player);
            if (config.PanelMessage.MessageUse) PanelMGUI(player);
        }
#endregion
#region GUI
        private void GUIBackground(BasePlayer player) {
            CuiHelper.DestroyUi(player, ".IMenuGUI");
            CuiElementContainer container = new CuiElementContainer();
            container.Add(new CuiPanel {
                CursorEnabled = true, RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "-405 -212.5", OffsetMax = "405 290"
                }
                , Image = {
                    Color = config.GUI.ColorBackgroundO, Material = config.GUI.MaterialBackgroundO
                }
            }
            , "Overlay", ".IMenuGUI");
            container.Add(new CuiPanel {
                RectTransform = {
                    AnchorMin = "0 0", AnchorMax = "1 1", OffsetMin = "5 5", OffsetMax = "-5 -5"
                }
                , Image = {
                    Color = config.GUI.ColorBackgroundT, Material = config.GUI.MaterialBackgroundT
                }
            }
            , ".IMenuGUI", ".IMenuTGUI");
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "366.5 213.75", OffsetMax = "395 241.25"
                }
                , Button = {
                    Color = "1 1 1 0.75", Sprite = "assets/icons/close.png", Close = ".IMenuGUI"
                }
                , Text = {
                    Text = ""
                }
            }
            , ".IMenuGUI");
            container.Add(new CuiLabel {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "-400 210", OffsetMax = "361.5 245"
                }
                , Text = {
                    Text = lang.GetMessage("Title", this, player.UserIDString), Align = TextAnchor.MiddleCenter, FontSize = 18, Color = "1 1 1 0.75"
                }
            }
            , ".IMenuGUI");
            container.Add(new CuiPanel {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "356.5 205", OffsetMax = "361.5 250"
                }
                , Image = {
                    Color = config.GUI.ColorBackgroundO, Material = config.GUI.MaterialBackgroundO
                }
            }
            , ".IMenuTGUI");
            container.Add(new CuiPanel {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "-400 -196.25", OffsetMax = "400 -191.25"
                }
                , Image = {
                    Color = config.GUI.ColorBackgroundO, Material = config.GUI.MaterialBackgroundO
                }
            }
            , ".IMenuTGUI");
            container.Add(new CuiPanel {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "-400 203.75", OffsetMax = "400 208.75"
                }
                , Image = {
                    Color = config.GUI.ColorBackgroundO, Material = config.GUI.MaterialBackgroundO
                }
            }
            , ".IMenuTGUI");
            CuiHelper.AddUi(player, container);
            GUIPage(player, 0, 0);
            GUIButton(player, 0);
        }
        private void GUIPage(BasePlayer player, int page, int Page) {
            CuiHelper.DestroyUi(player, ".Page");
            CuiElementContainer container = new CuiElementContainer();
            container.Add(new CuiPanel {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMax = "0 0"
                }
                , Image = {
                    Color = "0 0 0 0"
                }
            }
            , ".IMenuTGUI", ".Page");
            foreach(var i in config.IMenu.ElementAt(page).Value.Skip(Page * 1).Take(1)) {
                foreach(var text in i.Text) container.Add(new CuiLabel {
                    RectTransform = {
                        AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = text.OffsetMinText, OffsetMax = text.OffsetMaxText
                    }
                    , Text = {
                        Text = lang.GetMessage(text.NameText, this, player.UserIDString), Align = (TextAnchor)text.TextAnchor, Font = "robotocondensed-regular.ttf", FontSize = 15, Color = text.TextColor
                    }
                }
                , ".Page");
                foreach(var image in i.Image) {
                    container.Add(new CuiPanel {
                        RectTransform = {
                            AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = image.OffsetMinImage, OffsetMax = image.OffsetMaxImage
                        }
                        , Image = {
                            Color = config.GUI.ColorButton, Material = config.GUI.MaterialBackgroundO
                        }
                    }
                    , ".Page", ".Image");
                    container.Add(new CuiPanel {
                        RectTransform = {
                            AnchorMin = "0 0", AnchorMax = "1 1", OffsetMin = "25 25", OffsetMax = "-25 -25"
                        }
                        , Image = {
                            Png = (string) ImageLibrary.Call("GetImage", image.NameImage + 300), Color = "1 1 1 1", Material = "assets/icons/greyout.mat"
                        }
                    }
                    , ".Image");
                }
                foreach(var element in i.Element) container.Add(new CuiPanel {
                    RectTransform = {
                        AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = element.OffsetMinElement, OffsetMax = element.OffsetMaxElement
                    }
                    , Image = {
                        Color = element.ColorElement, Material = element.MaterialElement
                    }
                }
                , ".Page");
                foreach(var button in i.Button) container.Add(new CuiButton {
                    RectTransform = {
                        AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = button.OffsetMinButton, OffsetMax = button.OffsetMaxButton
                    }
                    , Button = {
                        Color = button.ButtonColor, Command = button.ButtonCommand
                    }
                    , Text = {
                        Text = lang.GetMessage(button.NameButton, this, player.UserIDString), Align = (TextAnchor)button.ButtonAnchor, Font = "robotocondensed-regular.ttf", FontSize = 15, Color = button.TextColor
                    }
                }
                , ".Page");
#region Page
                if(!config.Setting.ButtonNext) {
                    if(config.IMenu.ElementAt(page).Value.Count > 1) NextTick(() => GUIPageNext(player, page, Page));
                }
                else NextTick(() => GUIPageNext(player, page, Page));
#endregion
            }
            CuiHelper.AddUi(player, container);
        }
        private void GUIPageNext(BasePlayer player, int page, int Page) {
            CuiElementContainer container = new CuiElementContainer();
            bool back = Page != 0;
            bool next = config.IMenu.ElementAt(page).Value.Count > (Page + 1);
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "-50 -200", OffsetMax = "0 -160"
                }
                , Button = {
                    Color = "0 0 0 0", Command = back ? $"page back {page} {Page}" : ""
                }
                , Text = {
                    Text = "<", Align = TextAnchor.MiddleCenter, FontSize = 26, Font = "robotocondensed-regular.ttf", Color = back ? "1 1 1 0.75" : "1 1 1 0.1"
                }
            }
            , ".Page");
            container.Add(new CuiLabel {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "-15 -200", OffsetMax = "15 -160"
                }
                , Text = {
                    Text = $"{Page + 1}", Align = TextAnchor.MiddleCenter, Font = "robotocondensed-regular.ttf", FontSize = 18, Color = "1 1 1 0.75"
                }
            }
            , ".Page");
            container.Add(new CuiButton {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "0 -200", OffsetMax = "50 -160"
                }
                , Button = {
                    Color = "0 0 0 0", Command = next ? $"page next {page} {Page}" : ""
                }
                , Text = {
                    Text = ">", Align = TextAnchor.MiddleCenter, FontSize = 26, Font = "robotocondensed-regular.ttf", Color = next ? "1 1 1 0.75" : "1 1 1 0.1"
                }
            }
            , ".Page");
            CuiHelper.AddUi(player, container);
        }
        private void GUIButton(BasePlayer player, int page) {
            CuiHelper.DestroyUi(player, ".Button");
            CuiElementContainer container = new CuiElementContainer();
            container.Add(new CuiPanel {
                RectTransform = {
                    AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "0 -241.25", OffsetMax = "0 -201.25"
                }
                , Image = {
                    Color = "0 0 0 0"
                }
            }
            , ".IMenuTGUI", ".Button");
            int x = 0;
            int count = config.IMenu.Count;
            foreach(var button in config.IMenu) {
                string color = page == x ? config.GUI.ColorAButton : "0 0 0 0";
                double offset = -(63.75 * count--) - (2.5 * count--);
                container.Add(new CuiButton {
                    RectTransform = {
                        AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = $"{127.5 + offset - 127.5} -20", OffsetMax = $"{127.5 + offset} 20"
                    }
                    , Button = {
                        Color = config.GUI.ColorButton, Command = $"page page_b {x} 0"
                    }
                    , Text = {
                        Text = lang.GetMessage(button.Key, this, player.UserIDString), Align = TextAnchor.MiddleCenter, Font = "robotocondensed-regular.ttf", FontSize = 16, Color = "0.75 0.75 0.75 0.75"
                    }
                }
                , ".Button", ".BButton");
                container.Add(new CuiPanel {
                    RectTransform = {
                        AnchorMin = "0 0", AnchorMax = "1 0", OffsetMax = "0 1"
                    }
                    , Image = {
                        Color = color, Material = "assets/icons/greyout.mat"
                    }
                }
                , ".BButton");
                x++;
            }
            CuiHelper.AddUi(player, container);
        }
        private void PanelMGUI(BasePlayer player) {
            CuiHelper.DestroyUi(player, ".MainText");
            CuiElementContainer container = new CuiElementContainer();
            container.Add(new CuiElement {
                Parent = "Hud", Name = ".MainText", Components = {
                    new CuiTextComponent {
                        Text = lang.GetMessage(config.PanelMessage.ListMessage.GetRandom(), this, player.UserIDString), Align = TextAnchor.MiddleCenter, FontSize = 12, Font = "robotocondensed-regular.ttf"
                    }
                    , new CuiRectTransformComponent {
                        AnchorMin = "0.5 0", AnchorMax = "0.5 0", OffsetMin = "-234.5 0", OffsetMax = "215.5 17.5"
                    }
                    , new CuiOutlineComponent {
                        Color = "0 0 0 1", Distance = "0.5 0.5"
                    }
                }
            }
            );
            CuiHelper.AddUi(player, container);
        }
#endregion
#region Lang
        void InitializeLang() {
            Dictionary<string, string> llang = new Dictionary<string, string>();
            foreach(var imenu in config.IMenu) {
                llang.Add(imenu.Key, "BUTTON");
                foreach(var menu in imenu.Value) {
                    foreach(var i in menu.Text) llang.Add(i.NameText, "TEXT TEXT TEXT TEXT");
                    foreach(var i in menu.Button) llang.Add(i.NameButton, "BUTTON");
                }
            }
            foreach(var message in config.Message.ListMessage) llang.Add(message, "MESSAGE MESSAGE MESSAGE");
            foreach(var message in config.PanelMessage.ListMessage) llang.Add(message, "MESSAGE MESSAGE MESSAGE");
            llang.Add("Title", "TITLE TITLE TITLE");
            lang.RegisterMessages(llang, this);
            lang.RegisterMessages(llang, this, "ru");
            lang.RegisterMessages(llang, this, "es-ES");
        }
#endregion
    }
}

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