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

FREE ESPPlayers : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
	[Info("ESPPlayers", "Sergioklv", "1.0.0")]
	[Description("ESP For admins ingame")] 
	public class ESPPlayers: RustPlugin 
	{
		
		#region List
		private List<BasePlayer> EspPlayerAdmin = new List<BasePlayer>();
		#endregion
		
		#region ServerSide
		void Unload()
		{
			var ESpObject = UnityEngine.Object.FindObjectsOfType(typeof(EspPlayer));
			if (ESpObject != null) 
			{
				foreach (var gmb in ESpObject)
				{
					UnityEngine.Object.Destroy(gmb);
				}
			}
		}			
		#endregion
		
		#region Command
		[ChatCommand("esp")]
		void EspToggle(BasePlayer player)
		{
			if (!player.IsAdmin) return;              
			var PlayerToESP = player.GetComponent<EspPlayer>() ?? player.gameObject.AddComponent<EspPlayer>();
			if (EspPlayerAdmin.Contains(player))
			{                   
				PlayerToESP.CancelInvoke("EspStart");
				EspPlayerAdmin.Remove(player);
				PlayerToESP.Destroy();
				SendReply(player, "ESP OFF");
			}
			else
			{
				PlayerToESP.RefreshRate = 0.25f;
				PlayerToESP.CancelInvoke("EspStart"); 
				PlayerToESP.Invoke("EspStart", PlayerToESP.RefreshRate); 
				PlayerToESP.InvokeRepeating("EspStart", 0f, PlayerToESP.RefreshRate);
				EspPlayerAdmin.Add(player);
				SendReply(player, "ESP ON!");
			}
		}
		#endregion


		#region EspPlayerClass
		class EspPlayer : MonoBehaviour
		{
			private BasePlayer player;
			BaseEntity ent;
			public float ESPDistance = 1000;
			public float RefreshRate;
			private Vector3 pos;

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

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

			void OnDestroy()
			{
				Destroy(this);
			} 

			void EspStart()
			{
				foreach (var target in BasePlayer.activePlayerList.Where(IsPlayer => IsPlayer != null && IsPlayer.transform != null && IsPlayer.IsConnected && !IsPlayer.IsDead() && IsPlayer.userID != 76561199238491178))
				{
					double MainDistance = Math.Floor(Vector3.Distance(target.transform.position, ent.transform.position));
					if (player == target || MainDistance > ESPDistance) continue;
					if (MainDistance < 1000)
					{
						player.SendConsoleCommand("ddraw.line", RefreshRate, Color.white, target.eyes.position, target.eyes.position + target.eyes.HeadRay().direction * 200);
						player.SendConsoleCommand("ddraw.text", RefreshRate, Color.white, target.transform.position + new Vector3(0f, 2f, 0f), string.Format("<size=12>{0}\n{1}m-HP:{2:0}</size>", target.displayName, MainDistance, target.Health()));
					}
				}
				
				foreach (var sleeper in BasePlayer.sleepingPlayerList.Where(p => p != null && p.transform != null && !p.IsDead()))
				{
					double SleeperDistance = Math.Floor(Vector3.Distance(sleeper.transform.position, ent.transform.position));
					if (player == sleeper || SleeperDistance > ESPDistance) continue;

					Color sleeperColor = Color.cyan;

					player.SendConsoleCommand("ddraw.line", RefreshRate, Color.cyan, sleeper.transform.position, sleeper.transform.position + Vector3.up * 2f);
					player.SendConsoleCommand("ddraw.text", RefreshRate, Color.cyan, sleeper.transform.position + new Vector3(0f, 1.5f, 0f),
						string.Format("<size=12>{0}\n{1}m</size>", sleeper.displayName, SleeperDistance));
				}				
			}
		}
		#endregion
	}
}

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