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

FREE Spectate : 1.0.1 1.0.1

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

namespace Oxide.Plugins
{
    [Info("Spectate", "YaMang -w-", "1.0.1")]
    [Description("https://discord.gg/DTQuEE7neZ")]
    internal class Spectate : RustPlugin
    {
        #region Hook
        void OnPlayerRespawned(BasePlayer player)
        {
            CuiHelper.DestroyUi(player, "SpectateUI");
        }

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

        #endregion

        #region Commands
        [ChatCommand("spectate")]
        private void SpectateCMD(BasePlayer player, string command, string[] args)
        {
            
            if(!permission.UserHasPermission(player.UserIDString, "spectate.use"))
            {
                PrintToChat(player, $"<color=red>You don't have Permission</color>");
                return;
            }

            if(args.Length == 0)
            {
                PrintToChat(player, "Require Type Steamid Or Name\n/spectate yamang\n/spectate 765611*******");
                return;
            }

            if (args[0] == "stop")
            {
                player.Respawn();
                return;
            }

            var target = FindPlayers(args[0]);
            if(target == null)
            {
                PrintToChat(player, $"플레이어를 찾을 수 없습니다.");
                return;
            }

            if (!player.IsSpectating())
            {
                player.StartSpectating();
                player.UpdateSpectateTarget(target.UserIDString);
            }
            else
            {
                player.UpdateSpectateTarget(target.UserIDString);
            }

            RustUI(player, target.displayName);
        }
        void OnServerInitialized(bool initial)
        {
            permission.RegisterPermission("spectate.use", this);
        }
        #endregion

        #region UI
        private void RustUI(BasePlayer player, string name)
        {
            var container = new CuiElementContainer();
            container.Add(new CuiButton
            {
                Button = { Color = "0 0 0 0.3", Command = "respawn" },
                Text = { Text = $"<b><color=yellow>{name}</color></b>", Font = "robotocondensed-regular.ttf", FontSize = 18, Align = TextAnchor.MiddleCenter, Color = "1 1 1 1" },
                RectTransform = { AnchorMin = "0.5 0.5", AnchorMax = "0.5 0.5", OffsetMin = "-631.01 304.758", OffsetMax = "-420.81 351.242" }
            }, "Overlay", "SpectateUI");

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

        #region Helper
        private static BasePlayer FindPlayers(string nameOrIdOrIp)
        {
            foreach (var activePlayer in BasePlayer.activePlayerList)
            {
                if (activePlayer.userID.ToString() == nameOrIdOrIp)
                    return activePlayer;
                if (activePlayer.displayName.Contains(nameOrIdOrIp, CompareOptions.OrdinalIgnoreCase))
                    return activePlayer;
                if (activePlayer.net?.connection != null && activePlayer.net.connection.ipaddress == nameOrIdOrIp)
                    return activePlayer;
            }
            return null;
        }
        #endregion
    }
}

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