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

FREE BloodPanel : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
    [Info("BloodPanel", "[LimePlugin] Chibubrik", "1.0.0")]
    class BloodPanel : RustPlugin
    {
        #region Вар
        string Layer = "Panel_UI";

        [PluginReference] Plugin ImageLibrary;
        #endregion

        #region Конфиг
        Configuration config;
        class Configuration
        {
            [JsonProperty("Ссылка на логотип")] public string Url = "https://i.postimg.cc/FsWsD7LS/ba50956034dd762f6a3eca9f97888d96-Photoroom-1.png";
            [JsonProperty("Исполняемая команда")] public string Command = "menu";
            public static Configuration GetNewCong()
            {
                return new Configuration();
            }
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();
            try
            {
                config = Config.ReadObject<Configuration>();
                if (config == null) LoadDefaultConfig();
            }
            catch
            {
                PrintWarning($"Ошибка чтения конфигурации 'oxide/config/{Name}', создаём новую конфигурацию!!");
                LoadDefaultConfig();
            }

            NextTick(SaveConfig);
        }

        protected override void LoadDefaultConfig() => config = Configuration.GetNewCong();
        protected override void SaveConfig() => Config.WriteObject(config);
        #endregion

        #region Хуки
        void OnServerInitialized()
        {
            ImageLibrary.Call("AddImage", config.Url, config.Url);
            foreach (var player in BasePlayer.activePlayerList)
                OnPlayerConnected(player);
        }
        void OnPlayerConnected(BasePlayer player)
        {
            PanelUI(player);
        }
        #endregion

        #region Интерфейс
        void PanelUI(BasePlayer player)
        {
            CuiHelper.DestroyUi(player, Layer);
            var container = new CuiElementContainer();

            container.Add(new CuiPanel
            {
                RectTransform = { AnchorMin = "1 0", AnchorMax = "1 0", OffsetMin = "-250 6", OffsetMax = "-218 38" },
                Image = { Color = "1 1 1 0.04", Material = "assets/content/ui/uibackgroundblur.mat" }
            }, "Hud", Layer);

            container.Add(new CuiPanel
            {
                RectTransform = { AnchorMin = "0 0", AnchorMax = "1 1", OffsetMax = "" },
                Image = { Color = HexToCuiColor("#363636", 30), Sprite = "assets/content/ui/ui.background.transparent.radial.psd" }
            }, Layer);

            container.Add(new CuiElement
            {
                Parent = Layer,
                Components = {
                    new CuiRawImageComponent { Png = (string) ImageLibrary.Call("GetImage", config.Url), Color = "1 1 1 0.3" },
                    new CuiRectTransformComponent { AnchorMin = "0 0", AnchorMax = "1 1", OffsetMin = "1 1", OffsetMax = "-1 -1" },
                }
            });

            container.Add(new CuiButton
            {
                RectTransform = { AnchorMin = "0 0", AnchorMax = "1 1", OffsetMax = "" },
                Button = { Color = "0 0 0 0", Command = $"chat.say /{config.Command}" },
                Text = { Text = "" }
            }, Layer);

            CuiHelper.AddUi(player, container);
        }
        #endregion

        #region Хелпер
        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}";
        }
        #endregion
    }
}

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