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

FREE AdminESP : 1.0.0 1.0.0

Нет прав для скачивания
C#:
    using System;
    using System.Linq;
    using System.Collections.Generic;
    using UnityEngine;

    namespace Oxide.Plugins
    {
        [Info("AdminESP", "Ryamkk", "1.0.0")]
        public class AdminESP: RustPlugin 
        {
            private List<BasePlayer> Admin = new List<BasePlayer>();

            void Unload()
            {
                var espobjects = UnityEngine.Object.FindObjectsOfType(typeof(PlayerESP));
                if (espobjects != null) 
                {
                    foreach (var gameObj in espobjects)
                    {
                        UnityEngine.Object.Destroy(gameObj);
                    }
                }
            }

            [ChatCommand("ae")]
            void EspToggle(BasePlayer player)
            {
                if (!player.IsAdmin)
                {
                    SendReply(player, "У вас нету доступа на использование этой команды!");
                    return;
                }
                
                var esp = player.GetComponent<PlayerESP>() ?? player.gameObject.AddComponent<PlayerESP>();
                if (Admin.Contains(player))
                {
                    SendReply(player, "Вы отключили ESP!");
                    esp.CancelInvoke("EspStart");
                    Admin.Remove(player);
                    esp.Destroy();
                }
                else
                {
                    esp.invokeTime = 0.5f;
                    esp.CancelInvoke("EspStart"); 
                    esp.Invoke("EspStart", esp.invokeTime); 
                    esp.InvokeRepeating("EspStart", 0f, esp.invokeTime);
                    SendReply(player, "Вы включили ESP");
                    Admin.Add(player);
                }
            }

            class PlayerESP : MonoBehaviour
            {
                public BasePlayer player;
                BaseEntity source;
                public float maxDistance = 500;
                public float invokeTime;
                private Vector3 position;

                private List<BasePlayer> activePlayers = new List<BasePlayer>();

                void Awake()
                {
                    player = GetComponent<BasePlayer>();
                    source = player;
                    position = player.transform.position;
                }

                public void Destroy()
                {
                    Destroy(this);
                }

                void OnDestroy()
                {
                    Destroy(this);
                } 

                void EspStart()
                {
                    foreach (var target in BasePlayer.activePlayerList.Where(t => t != null && t.transform != null && t.IsConnected && !t.IsDead()))
                    {
                        double currDistance = Math.Floor(Vector3.Distance(target.transform.position, source.transform.position));
                        if (player == target || currDistance > maxDistance) continue;
                        if (currDistance < 500)
                        {
                            player.SendConsoleCommand("ddraw.line", invokeTime + 0.05f, Color.white, target.eyes.position, target.eyes.position + target.eyes.HeadRay().direction * 100);
                            player.SendConsoleCommand("ddraw.text", invokeTime, Color.white, target.transform.position + new Vector3(0f, 2f, 0f), string.Format("{0}({1})", target.displayName, currDistance));
                        }
                    }

                    foreach (var target in BasePlayer.sleepingPlayerList.Where(t => t != null && t.transform != null && t.IsConnected && !t.IsDead()))
                    {
                        double currDistance = Math.Floor(Vector3.Distance(target.transform.position, source.transform.position));
                        if (player == target || currDistance > maxDistance) continue;
                        if (currDistance < 500)
                        {
                            player.SendConsoleCommand("ddraw.line", invokeTime + 0.05f, Color.white, target.eyes.position, target.eyes.position + target.eyes.HeadRay().direction * 100);
                            player.SendConsoleCommand("ddraw.text", invokeTime, Color.green, target.transform.position + new Vector3(0f, 2f, 0f), string.Format("{0} ({1})", target.displayName, currDistance));
                        }
                    }
                }
            }
        }
    }

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