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

FREE UIConnect : 1.2.2 1.2.2

Нет прав для скачивания
C#:
// UI Connect скачан с сайта Server-rust.ru Сотни новых бесплатных плагинов уже на нашем сайте! 
// Присоеденяйся к нам! Server-rust.ru
using System.Collections.Generic;
using System;
using System.Runtime.InteropServices.ComTypes;
using ConVar;
using Facepunch.Steamworks;
using JetBrains.Annotations;
using Mono.Security.X509;
using UnityEngine;
using Oxide.Plugins;
using Oxide.Game.Rust.Cui;
using Oxide.Core.Libraries.Covalence;
using Oxide.Core;
using UnityEngine.Networking;
using Console = System.Console;

namespace Oxide.Plugins
{
	[Info("UIConnect", "A1M41K", "1.2.2")]
	class UIConnect : RustPlugin
	{
		#region Значения
		private int FontSizeText = 16;
        private string FontName = "robotocondensed-regular.ttf";
        private bool ShowGUI = false;
		private bool ShowPrefix = true;
		private bool ShowReason = true;
		private bool ShowDisconnect = true;
		private bool showconnectadmin = true;
		private string colorname = "#0081de";
		private string colorprefix = "#0081de";
		private string Prefix = "[UIConnect]";
		private string formatconnectChat = "Присоединился к игре {PLAYER}";
		private string formatLeaveChat = "Отключился от игры {PLAYER} [Причина: {0}]";
		private string formatconnectUI = "Присоединился: {Name}";
		private string AnchorMinUI = "0.01249945 0.03518518";
		private string AnchorMaxUI = "0.2447917 0.07685138";
		#endregion

		#region Hooks

				void OnPlayerInit(BasePlayer player, string[] args)
        		{	
        			timer.Once(5, () =>
        			{ 
        				foreach (var check in BasePlayer.activePlayerList)
        				updateGUI(check, player.net.connection.username);
        				timer.Once(5, () =>
        				{
        					foreach (var check in BasePlayer.activePlayerList)
        					CuiHelper.DestroyUi(check, "ConnectGUI");
        					});
        				});
			        
			        sendJoinMessage(player);
		        }
			
        		void OnServerInitialized()
        		{
        			LoadConfig();
        			LoadDefaultMessages();
        		}
		
		#endregion

		#region UI

				private void updateGUI(BasePlayer player, string Name)
        		{
        			CuiHelper.DestroyUi(player, "ConnectGUI");
        			ConnectGUI(player, Name);
        		}
        
        		private void ConnectGUI(BasePlayer player, string Name)
        		{
        			if (ShowGUI == false)
        			{
				        string message = formatconnectUI.Replace("{Name}", $"{color(colorname, Name)}");
        				var RankElements = new CuiElementContainer();
        				var Choose = RankElements.Add(new CuiPanel
        				{
        					Image = {Color = "0.1 0.1 0.1 0"},
        					RectTransform = {AnchorMin = $"{AnchorMinUI}", AnchorMax = $"{AnchorMaxUI}"},
        				}, "Hud", "ConnectGUI");
        	
        				RankElements.Add(new CuiElement
        				{
        					Parent = "ConnectGUI",
        					Components =
        					{
        						new CuiTextComponent()
        						{
        							Text = message ,
        							Align = TextAnchor.MiddleLeft,
        							Color = "1 1 1 1",
        							Font = FontName,
        							FontSize = FontSizeText
        						},
        						new CuiRectTransformComponent {AnchorMin = "0 0", AnchorMax = "1 1"},
        						new CuiOutlineComponent() {Color = "0 0 0 1", Distance = "0.5 1"}
        					}
        				});
        				CuiHelper.AddUi(player, RankElements);
        		    }
        		}

		#endregion
		
		#region config
		private new void LoadDefaultConfig()
		{
			PrintWarning("Создание нового файла конфигурации...| Благодарим за покупку данного плагина");
			LoadConfig();
		}
		
		private new void LoadConfig()
		{
			GetConfig("Настройка Префикса", "Цвет префикса", ref colorprefix);
			GetConfig("Настройка Префикса", "Префикс", ref Prefix);
			GetConfig("Настройка Префикса", "Отображать префикс?", ref ShowPrefix);
			GetConfig("Основные настройки","Показывать оповещение о входе в чат вместо UI", ref ShowGUI);
			GetConfig("Основные настройки", "Показывать отключение игроков", ref ShowDisconnect);
			GetConfig("Основные настройки", "Показывать админа при подключение?", ref showconnectadmin);
			GetConfig("Формат сообщения","Присоединение CHAT", ref formatconnectChat);
			GetConfig("Формат сообщения","Присоединение UI", ref formatconnectUI);
			GetConfig("Формат сообщения","Отключение CHAT", ref formatLeaveChat);
			GetConfig("Настройка UI", "Расположение панели Min", ref AnchorMinUI);
			GetConfig("Настройка UI", "Расположение панели Max", ref AnchorMaxUI);
			GetConfig("Настройка UI","Размер текста", ref FontSizeText);
			GetConfig("Настройка UI", "Цвет ника при подключение", ref colorname);
			GetConfig("Настройка UI","Шрифт Текст", ref FontName);
			SaveConfig();
			
		}
		private void GetConfig<T>(string menu, string Key, ref T var)
		{
			if (Config[menu, Key] != null)
			{
				var = (T)Convert.ChangeType(Config[menu, Key], typeof(T));
			}

			Config[menu, Key] = var;
		}
		#endregion
		
		string color(string color, string text)
		{
			return $"<color={color}>{text}</color>";
		}


		string getMessageFormat(BasePlayer player, string type)
		{
			if (type == "Join")
			{
				string message = formatconnectChat.Replace("{PLAYER}", $"{color(colorname, player.displayName)}");
				if (ShowPrefix)
					return $"{color(colorprefix, Prefix)} {message}";
				return message;
			}
			if (type == "Leave")
			{
				string reason;
				string message = formatLeaveChat.Replace("{PLAYER}", $"{color(colorname, player.displayName)}"); 
				if (ShowPrefix)
					return $"{color(colorprefix, Prefix)} {message}";
				return message;
			}
			return "Ошибка";
		}
		
		void OnPlayerDisconnected(BasePlayer player, string reason)
		{
			Puts($"<color=#fff>[{Prefix}]</color> {player.displayName} вышел со сервера [Причина: {reason}]");
			LogToFile("disconnect", $"[{DateTime.Now.ToShortTimeString()}] {player.displayName} вышел со сервера [Причина: {reason}]", this, true);
			
			foreach (BasePlayer sender in BasePlayer.activePlayerList)
				PrintToConsole(sender, $"<color=#fff>{Prefix}</color> <color=#fff>{player.displayName}</color> вышел со сервера [Причина: <color=#fff>{reason}</color>]");
			
			if (ShowDisconnect == true)
			{
				sendLeaveMessage(player, reason);
			}
		}
		
		void sendLeaveMessage(BasePlayer player, string reason)
		{
			if (ShowGUI == true)
			{
				string text = getMessageFormat(player, "Leave");
				foreach (BasePlayer p in BasePlayer.activePlayerList)
					PrintToChat(p, text, reason);
				foreach (BasePlayer sender in BasePlayer.activePlayerList)
					PrintToConsole(sender, text, reason);
			}
		}
		
		void sendJoinMessage(BasePlayer player)
		{
			if (ShowGUI == true)
			{
				string text = getMessageFormat(player, "Join");
				if (showconnectadmin == false)
				{
					if (player.IsAdmin)
					{
						string connect = $"Вы успешно присоединились скрывая личность";
						if (ShowPrefix)
							connect = $"<color={colorprefix}>{Prefix}</color> Вы успешно присоединились скрывая личность";
						PrintToChat(player, connect);
					}
					else
					{
						foreach (BasePlayer p in BasePlayer.activePlayerList)
						{
							PrintToChat(p, text);
							PrintToConsole(p, $"<color=#fff>{Prefix}</color> <color=#fff>{player.displayName}</color> присоединился к игре");
						}		
					}
				}
				else
				{
					foreach (BasePlayer p in BasePlayer.activePlayerList)
						PrintToChat(p, text);
				}
			}
			foreach (BasePlayer sender in BasePlayer.activePlayerList)
				PrintToConsole(sender, $"<color=#fff>{Prefix}</color> <color=#fff>{player.displayName}</color> присоединился к игре");
		}
	}
}

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