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

FREE PeacePanelRU : 1.0.1 1.0.1

Нет прав для скачивания
C#:
using System;
using System.Globalization;
using Oxide.Core.Plugins;
using Oxide.Game.Rust.Cui;
using System.Collections.Generic;
using Newtonsoft.Json;
using UnityEngine;
using System.Linq;
namespace Oxide.Plugins {
    [Info("PeacePanel RU", "backwood", "1.0.1")]
    class PeacePanelRU : RustPlugin {
#region Color [Цвета]
        public string colors = "#ff2f31";
#endregion
#region Hooks [Хуки]
        private void OnServerInitialized() {
            foreach (var player in BasePlayer.activePlayerList) OnPlayerInit(player);
        }
        void Unload() {
            foreach (BasePlayer player in BasePlayer.activePlayerList) {
                CuiHelper.DestroyUi(player, "Layer");
            }
        }
        private void OnPlayerInit(BasePlayer player) {
            if (player.IsReceivingSnapshot) {
                NextTick(() => OnPlayerInit(player));
                return;
            }
            foreach (var players in BasePlayer.activePlayerList) {
                timer.Once(1, () => {
                    DrawInterface(players);
                }
                );
            }
        }
        private void OnPlayerDisconnected(BasePlayer player, string reason) {
            foreach (var players in BasePlayer.activePlayerList) {
                timer.Once(1, () => {
                    DrawInterface(players);
                }
                );
            }
        }
#endregion
#region UI [Визуальная часть]
        private void DrawInterface(BasePlayer player) {
            var SleepersCount = BasePlayer.sleepingPlayerList.Count.ToString();
            var JoiningCount = ServerMgr.Instance.connectionQueue.Joining.ToString();
            string Layer = "Layer";
            CuiHelper.DestroyUi(player, Layer);
            var container = new CuiElementContainer();
            container.Add(new CuiPanel {
                Image = {
                    Color = HexToRustFormat("#FFFFFF00")
                }
                , RectTransform = {
                    AnchorMin = "0.34375 7.21775E-09", AnchorMax = "0.640625 0.02499998"
                }
                , CursorEnabled = false,
            }
            , "Hud", Layer);
            container.Add(new CuiElement {
                Parent = Layer, Components = {
                    new CuiTextComponent {
                        Text = $"Общий онлайн: <color={colors}>{BasePlayer.activePlayerList.Count}</color> | Спящих игроков: <color={colors}>{SleepersCount}</color> | Заходят: <color={colors}>{JoiningCount}</color>", Align = TextAnchor.MiddleCenter, FontSize = 12, Font = "RobotoCondensed-regular.ttf"
                    }
                    , new CuiOutlineComponent {
                        Color = "0 0 0 1", Distance = "0.5 0.5"
                    }
                    , new CuiRectTransformComponent {
                        AnchorMin = "0 0", AnchorMax = "1 1"
                    }
                }
            }
            );
            CuiHelper.AddUi(player, container);
        }
#endregion
#region Helpers [Доп.методы]
        private static string HexToRustFormat(string hex) {
            if (string.IsNullOrEmpty(hex)) {
                hex = "#FFFFFFFF";
            }
            var str = hex.Trim('#');
            if (str.Length == 6) str += "FF";
            if (str.Length != 8) {
                throw new Exception(hex);
                throw new InvalidOperationException("Cannot convert a wrong format.");
            }
            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);
            var a = byte.Parse(str.Substring(6, 2), NumberStyles.HexNumber);
            Color color = new Color32(r, g, b, a);
            return string.Format("{0:F2} {1:F2} {2:F2} {3:F2}", color.r, color.g, color.b, color.a);
        }
#endregion
    }
}

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

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

Сверху