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

FREE WMenu : 0.0.1 0.0.1

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

using Newtonsoft.Json;
using Oxide.Core;
using Oxide.Game.Rust.Cui;
using System.Collections.Generic;
using Oxide.Core.Plugins;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("UI Menu", "WOLF#4002", "0.0.1")]
    public class WMenu : RustPlugin
    {
		private void OnServerInitialized()
		{
			ImageLibrary.Call("AddImage", "https://rustplugins.top/api/image/menu/active.png", "ac");
			ImageLibrary.Call("AddImage", "https://rustplugins.top/api/image/menu/not.png", "noac");
			ImageLibrary.Call("AddImage", "https://i.imgur.com/9HpLMxA.png", "ra");
			ImageLibrary.Call("AddImage", "https://i.imgur.com/m86td7U.png", "po"); 
			ImageLibrary.Call("AddImage", "https://i.imgur.com/dXNw6Kq.png", "clo");
			ImageLibrary.Call("AddImage", "https://rustplugins.top/api/image/menu/Menu.png", "fon");
			BasePlayer.activePlayerList.ToList().ForEach(OnPlayerConnected);
		}
		private void OnPlayerConnected(BasePlayer player) 
		{
			//UI(player);
			//Notifi(player, GetLang("Welcom",player.UserIDString), GetLang("Online",player.UserIDString, player.displayName, player.userID, BasePlayer.activePlayerList.Count, BasePlayer.sleepingPlayerList.Count.ToString())); 
		}
		private void OnPlayerDisconnected(BasePlayer player)
        {
            CuiHelper.DestroyUi(player, Men);
			CuiHelper.DestroyUi(player, Poi);
			CuiHelper.DestroyUi(player, Internal);
        }
		private void Unload()
		{
			foreach (var player in BasePlayer.activePlayerList)
			{
				CuiHelper.DestroyUi(player, Men);
				CuiHelper.DestroyUi(player, Poi);
				CuiHelper.DestroyUi(player, Internal);
			}
		}
		
		
		
		[PluginReference] Plugin ImageLibrary, WRate, WEco, WStats;
		private static string Men = "UI_Menu";
		private static string Poi = "UI_Point";
		private static string Internal = "WOLF";
		
		void UI(BasePlayer player)
		{
			CuiElementContainer container = new CuiElementContainer();
			CuiHelper.DestroyUi(player, Men);
			CuiHelper.DestroyUi(player, Internal);
			container.Add(new CuiPanel
                {
                    CursorEnabled = true,
                    RectTransform = { AnchorMin = "0.1 0.1", AnchorMax = "0.9 0.9", OffsetMax = "0 0" },
                    Image = { Color = "0.25 0.50 0.50 0" },
                }, "Overlay", Men); 
			container.Add(new CuiElement
            {
                
                Parent = Men,
                
                Components =
                    {
                        new CuiRawImageComponent { Png = (string) ImageLibrary.Call("GetImage", "fon")},
                        new CuiRectTransformComponent{ AnchorMin = "0 0", AnchorMax = "1 1" }, 
                    }
            });
			
			container.Add(new CuiPanel
                {
                    
                    RectTransform = { AnchorMin = "0.008 0.012", AnchorMax = "0.15 0.75", OffsetMax = "0 0" },
                    Image = { Color = "1.00 0.50 0.25 0"},
                }, Men, Poi);
			
			
			container.Add(new CuiPanel
                {
                    
                    RectTransform = { AnchorMin = "0.16 0.012", AnchorMax = "0.995 0.9", OffsetMax = "0 0" },
                    Image = { Color = "1.00 0.50 0.25 0", Material = "assets/content/ui/uibackgroundblur-ingamemenu.mat" },
                }, Men, Internal);
				
				
			container.Add(new CuiPanel
                {
                    
                    RectTransform = { AnchorMin = "0.16 0.91", AnchorMax = "1 0.99", OffsetMax = "0 0" },
                    Image = { Color = "1.00 0.50 0.25 0" },
                }, Men, Men + "w");
			
				
			
			
			int playersG = WEco.Call<int>("FINDGold", player);
			int playersS = WEco.Call<int>("FINDSilver", player);
			float playersR = WRate.Call<float>("FINDRate", player);
			int playersP = WStats.Call<int>("FINDPoint", player);
			


			
			container.Add(new CuiElement 
            {
                
                Parent = Men + "w",
                Components =
                {
                    new CuiTextComponent {Text = $"X{playersR}", Align = TextAnchor.MiddleRight, FontSize = 12, Color = "0.72 0.83 0.71 1.00"},
                    new CuiRectTransformComponent { AnchorMin = "0.06 0.1", AnchorMax = "0.145 0.9" },
                    new CuiOutlineComponent { Color = "0.90 0.66 0.64 0.5", Distance = "0.1 0.1" }
                }
            });
			container.Add(new CuiElement 
            {
                
                Parent = Men + "w",
                Components =
                {
                    new CuiTextComponent {Text = $"{playersP}", Align = TextAnchor.MiddleRight, FontSize = 12, Color = "0.72 0.83 0.71 1.00"},
                    new CuiRectTransformComponent { AnchorMin = "0.21 0.1", AnchorMax = "0.295 0.9" },
                    new CuiOutlineComponent { Color = "0.90 0.66 0.64 0.5", Distance = "0.1 0.1" }
                }
            });
			container.Add(new CuiElement 
            {
                
                Parent = Men + "w",
                Components =
                {
                    new CuiTextComponent {Text = $"{playersG}", Align = TextAnchor.MiddleRight, FontSize = 12, Color = "0.72 0.83 0.71 1.00"},
                    new CuiRectTransformComponent { AnchorMin = "0.36 0.1", AnchorMax = "0.43 0.9" },
                    new CuiOutlineComponent { Color = "0.90 0.66 0.64 0.5", Distance = "0.1 0.1" }
                }
            });
			
			container.Add(new CuiElement 
            {
                
                Parent = Men + "w",
                Components =
                {
                    new CuiTextComponent {Text = $"{playersS}", Align = TextAnchor.MiddleRight, FontSize = 12, Color = "0.72 0.83 0.71 1.00"},
                    new CuiRectTransformComponent { AnchorMin = "0.51 0.1", AnchorMax = "0.587 0.9" },
                    new CuiOutlineComponent { Color = "0.90 0.66 0.64 0.5", Distance = "0.1 0.1" }
                }
            });
			
			
			container.Add(new CuiButton
                {
                    RectTransform = { AnchorMin = "0.93 0.01", AnchorMax = "0.99 0.99" },
                    Button = { Command = "menu close", Color = "1.00 0.00 0.00 0" },
                    Text = { Text = "", FontSize = 50, Align = TextAnchor.MiddleCenter }
                },  Men + "w");
				
			CuiHelper.AddUi(player, container);	
			DrawPoints(player);
		}
		
		private void DrawPoints(BasePlayer player, MenuPoint choosed = null)
		{
			CuiElementContainer container = new CuiElementContainer();

                float marginTop = -2;
                
                float originalHeight = 30; 
                float freeHeight = 20;
                
                float padding = 0;
			foreach (var point in Settings.Points)
            {
                CuiHelper.DestroyUi(player, Poi + Settings.Points.IndexOf(point));
				string color = point == choosed ? "1.00 0.53 0.53 0.5" : "0.86 0.77 0.67 0.5";
				string color1 = point == choosed ? "0.84 0.17 0.37 0" : "1 1 1 0";
				string img = point == choosed ? (string) ImageLibrary.Call("GetImage", "ac") : (string) ImageLibrary.Call("GetImage", "noac");
				float elementHeight = point.DisplayName.Length > 0 ? originalHeight : freeHeight;
				
				container.Add(new CuiElement 
                {
                
                Parent = Poi,
                Name = Poi + Settings.Points.IndexOf(point),
                Components =
                    {
                        new CuiRawImageComponent { Png = img},
                        new CuiRectTransformComponent{ AnchorMin = "0 1", AnchorMax = "0 1", OffsetMin = $"10 {marginTop - elementHeight}", OffsetMax = $"135 {marginTop}" }, 
                    }
                });
				container.Add(new CuiElement 
                {
                
                Parent = Poi + Settings.Points.IndexOf(point),
                Components =
                {
                    new CuiTextComponent {Color = color,Text = point.DisplayName, Align = TextAnchor.MiddleLeft, FontSize = 12},
                    new CuiRectTransformComponent { AnchorMin = "0.3 0", AnchorMax        = "1 1" },
                    new CuiOutlineComponent { Color = "0 0 0 1", Distance = "1 1" }
                } 
                });
                container.Add(new CuiButton
                    {
                        RectTransform = {AnchorMin = "0 0", AnchorMax = "1 1" }, 
                        Button = { Command = $"menu choose {Settings.Points.IndexOf(point)}", Color = color1 },
                        Text = { Text = "", Align = TextAnchor.MiddleLeft, Font = "robotocondensed-bold.ttf", FontSize = 20, Color = color }
                    },Poi + Settings.Points.IndexOf(point));
                marginTop -= elementHeight + padding;
			}
			CuiHelper.AddUi(player, container);
		}
		  
		
		[ChatCommand("menu")]
        private void CmdChatStore(BasePlayer player, string command, string[] args)
		{
			UI(player);   
		} 
		[ConsoleCommand("menu")]
        private void CmdConsoleRustMenu(ConsoleSystem.Arg args)
        {
            var player = args.Player();
            if (player == null || !args.HasArgs(1)) return;
			
			switch (args.Args[0].ToLower())
			{
				case "close":
                { 
                    CuiHelper.DestroyUi(player, Men);
				    CuiHelper.DestroyUi(player, Poi);
				    CuiHelper.DestroyUi(player, Internal);
                    break;
                }
				case "choose":
                {
                    int chooseIndex = -1;
                    if (!int.TryParse(args.Args[1], out chooseIndex)) return;

                    var chooseElement = Settings.Points.ElementAtOrDefault(chooseIndex);
                    if (chooseElement == null) return;

                    CuiHelper.DestroyUi(player, Internal); 
                     
                    CuiElementContainer container = new CuiElementContainer();
                    container.Add(new CuiPanel
                {
                    
                    RectTransform = { AnchorMin = "0.16 0.012", AnchorMax = "0.995 0.9", OffsetMax = "0 0" },
                    Image = { Color = "1.00 0.50 0.25 0", Material = "assets/content/ui/uibackgroundblur-ingamemenu.mat" },
                }, Men, Internal);
					
                    CuiHelper.AddUi(player, container); 
                    
                    
                    player.SendConsoleCommand(chooseElement.DrawMethod);
					DrawPoints(player, chooseElement);
                    Effect effect = new Effect("assets/bundled/prefabs/fx/notice/stack.world.fx.prefab", player, 0, new Vector3(), new Vector3());
                    EffectNetwork.Send(effect, player.Connection);
                    break;
                }
				
			}
		}
		
		private class MenuPoint
        {
			[JsonProperty("Name Button")]
            public string DisplayName;
			[JsonProperty("Button")]
            public string DrawMethod;
        }
		private class MenuEco
        {
			[JsonProperty("Name Pugins")]
            public string Plugins;
			[JsonProperty("Hook and API")]
            public string Hook;
        }
		private class Configuration  
        {
			[JsonProperty("Button")]
            public List<MenuPoint> Points = new List<MenuPoint>();
			[JsonProperty("Economics")]
            public MenuEco Eco = new MenuEco();
            
            public static Configuration Generate() 
            {
               return new Configuration
                {
                   Points = new List<MenuPoint>
					{
						new MenuPoint
                        {
                                DisplayName = "KIT",
                                DrawMethod = "chat.say /kit",
                        }, 
						new MenuPoint
                        {
                            DisplayName = "KITtjtjmktkfyS",
                            DrawMethod = "chat.say /kits",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						new MenuPoint
                        {
                            DisplayName = "৑",
                            DrawMethod = "",
                        },
						
						new MenuPoint
                        {
                            DisplayName = "CLOSE",
                            DrawMethod = "menu close",
                        },
					},
					Eco = new MenuEco 
                    {
                        Plugins = "Economics",
						Hook = "Balance",
                    },
					
                };
            }
        }
		private static Configuration Settings;
		
		protected override void LoadConfig() 
        {
            base.LoadConfig();
            try
            {
                Settings = Config.ReadObject<Configuration>();
            }
            catch
            {
                PrintWarning($"Error reading config, creating one new config!");
                LoadDefaultConfig();
            }

            SaveConfig();
        }

        protected override void LoadDefaultConfig() => Settings = Configuration.Generate();
        protected override void SaveConfig()        => Config.WriteObject(Settings);
		
	}
}

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