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

FREE MsgPlayersGui : 1.0.1 1.0.1

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using UnityEngine;
using Rust;
using Oxide.Core.Plugins;

namespace Oxide.Plugins
{
    [Info("MsgPlayersGui", "Steven", "1.0.1", ResourceId = 8909)]
    class MsgPlayersGui : RustPlugin
    {	
		int MsgDisappearTime = 15; //15 Seconds		
        System.Timers.Timer timer;
		bool IsAll = false, canRun = true;
        #region JSON
        string json = @"[  
		                { 
							""name"": ""AnnouncementMsg"",
                            ""parent"": ""Overlay"",
                            ""components"":
                            [
                                {
                                     ""type"":""UnityEngine.UI.Image"",
                                     ""color"":""0.1 0.1 0.1 0.7"",
                                },
                                {
                                    ""type"":""RectTransform"",
                                    ""anchormin"": ""0.020 0.91"",
                                    ""anchormax"": ""0.980 0.99""
                                }
                            ]
                        },
						{
                            ""parent"": ""AnnouncementMsg"",
                            ""components"":
                            [
                                {
                                    ""type"":""UnityEngine.UI.Text"",
                                    ""text"":""From: {from}"",
                                    ""fontSize"":20,
                                    ""align"": ""MiddleCenter"",
                                },
                                {
                                    ""type"":""RectTransform"",
                                    ""anchormin"": ""0 0.6"",
                                    ""anchormax"": ""1 1""
                                }
                            ]
                        },
						{
                            ""parent"": ""AnnouncementMsg"",
                            ""components"":
                            [
                                {
                                    ""type"":""UnityEngine.UI.Text"",
                                    ""text"":""{msg}"",
                                    ""fontSize"":15,
                                    ""align"": ""MiddleCenter"",
                                },
                                {
                                    ""type"":""RectTransform"",
                                    ""anchormin"": ""0 0.1"",
                                    ""anchormax"": ""1 0.8""
                                }
                            ]
                        }
                    ]
                    ";
        #endregion
		void LoadMsgGui(string Name, string Msg)
		{			
			string send = json.Replace("{from}", Name).Replace("{msg}", Msg);
			foreach (BasePlayer player in BasePlayer.activePlayerList)
			{
				CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo() { connection = player.net.connection }, null, "AddUI", send);
			}
			timer.Start();
		}
		
        void Loaded()
        {
		    timer = new System.Timers.Timer(1000 * MsgDisappearTime);
            timer.Interval = 1000 * MsgDisappearTime;
            timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
        }
		
		void Unload()
		{
			timer.Stop();
		}
		BasePlayer TempPlayer;
		
		private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
			timer.Stop();
			if(IsAll)
			{
				foreach (BasePlayer player in BasePlayer.activePlayerList)
				{
					CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo() { connection = player.net.connection }, null, "DestroyUI", "AnnouncementMsg");
				}
			} 
			else if(TempPlayer!=null) 
			{				
				CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo() { connection = TempPlayer.net.connection }, null, "DestroyUI", "AnnouncementMsg");
				TempPlayer = null;
			}
			canRun = true;
		}
		
		[ChatCommand("announce")]
        void cmdAnnounce(BasePlayer player, string command, string[] args)
		{
			if(!canRun) 
			{
				SendReply(player, "A announcement has recently been done please wait " + MsgDisappearTime + " seconds.");	
				return;		
			}
			if(player.net.connection.authLevel < 1) return;
			if(args.Length >= 1)
			{
				IsAll = true;
				string Msg = "";
				for(int i = 0; i < args.Length; i++)				
					Msg = Msg + " " + args[i];
				canRun = false;
				LoadMsgGui(player.displayName, Msg);
			} else SendReply(player, "Incorrect Syntax use /announce <msg>");				
		}
		
		[ChatCommand("announceto")]
        void cmdAnnounceTo(BasePlayer player, string command, string[] args)
		{
			if(!canRun) 
			{
				SendReply(player, "A announcement has recently been done please wait " + MsgDisappearTime + " seconds.");	
				return;		
			}
			if(player.net.connection.authLevel < 1) return;
			if(args.Length >= 2)
			{
				IsAll = false;
				string Player = args[0].ToLower(), Msg = "";
				for(int i = 1; i < args.Length; i++)				
					Msg = Msg + " " + args[i];
				BasePlayer p;
				if((p = BasePlayer.activePlayerList.Find(x => x.displayName.ToLower().EndsWith(Player))) != null) //used ends with due to clan tags
				{
					string send = json.Replace("{from}", player.displayName).Replace("{msg}", Msg);
					CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo() { connection = p.net.connection }, null, "AddUI", send);
					canRun = false;
					timer.Start();
					TempPlayer = p;
				} else SendReply(player, Player+" is not online.");
			} else SendReply(player, "Incorrect Syntax use /announce <name> <msg>");
		}
    }
}

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