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

FREE PlayerRefference : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
    [Info("PlayerRefference", "Drop Dead", "1.0.0")]
    public class PlayerRefference : RustPlugin
    {
        public Dictionary<ulong, string> Players = new Dictionary<ulong, string>();

        void SaveData()
        {
            Interface.Oxide.DataFileSystem.WriteObject("Refference/PlayerData", Players);
        }

        void LoadData()
        {
            Players = Interface.Oxide.DataFileSystem.ReadObject<Dictionary<ulong, string>>("Refference/PlayerData");
        }

        private void Init()
        {
            LoadData();
            foreach (var player in BasePlayer.activePlayerList)
                OnPlayerConnected(player);
        }

        void OnServerSave()
        {
            SaveData();
        }

        void OnPlayerConnected(BasePlayer player)
        {
            if (player == null) return;
            if (player.IsReceivingSnapshot)
            {
                NextTick(() => OnPlayerConnected(player));
                return;
            }
            if (!Players.ContainsKey(player.userID))
            {
                var a = Core.Random.Range(1, 9);
                var b = Core.Random.Range(1, 9);
                var c = Core.Random.Range(1, 9);
                var d = Core.Random.Range(1, 9);
                Players.Add(player.userID, $"#O{a}{d}{c}R{b}");
            }
            DrawUI(player);
        }

        void Unload()
        {
            SaveData();
            foreach (var player in BasePlayer.activePlayerList) CuiHelper.DestroyUi(player, "Layer");
        }

        private void DrawUI(BasePlayer player)
        {
            if (!Players.ContainsKey(player.userID)) return;
            CuiHelper.DestroyUi(player, "Layer");
            var container = new CuiElementContainer();
            container.Add(new CuiPanel
            {
                Image = { Color = HexToRustFormat("#FFFFFF00") },
                RectTransform = { AnchorMin = "0.3442709 -0.0009259321", AnchorMax = "0.6411458 0.02407408" },
                CursorEnabled = false,
            }, "Hud", "Layer");

            container.Add(new CuiElement
            {
                Parent = "Layer",
                Name = "Layer" + ".Refference",
                Components =
                {
                    new CuiTextComponent { Color = HexToRustFormat("#D2D2D240"), Text = $"{player.displayName} • {Players[player.userID]}", Align = TextAnchor.MiddleCenter, FontSize = 10, Font = "RobotoCondensed-regular.ttf" },
                    new CuiRectTransformComponent {AnchorMin = "0 0", AnchorMax = "1 1"}
                }
            });

            CuiHelper.AddUi(player, container);
        }

        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);
        }
    }
}

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