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

FREE BackpackButton : 1.0.0 1.0.0

Нет прав для скачивания
C#:
using Oxide.Core.Plugins;
using Oxide.Game.Rust.Cui;
using Oxide.Core;
using UnityEngine;
using System.Collections.Generic;

namespace Oxide.Plugins
{
    [Info("BackpackButton", "TuNombre", "1.0.0")]
    [Description("Agrega un botón para abrir la mochila usando Backpacks v2.x")] 
    public class BackpackButton : RustPlugin
    {
        [PluginReference]
        private Plugin Backpacks;

        private const string ButtonPanel = "BackpackButtonUI";
        private const string ButtonCommand = "backpack.open";

        private class PluginConfig
        {
            public string ButtonPosition { get; set; } = "Right";
            public float OffsetX { get; set; } = 0.70f;
            public float AnchorMinY { get; set; } = 0.02f;
            public float AnchorMaxX { get; set; } = 0.74f;
            public float AnchorMaxY { get; set; } = 0.06f;
            public string Color { get; set; } = "0.4 0.8 1 0.8";
            public float ImageSize { get; set; } = 0.04f;
        }

        private PluginConfig _config;

        protected override void LoadDefaultConfig()
        {
            _config = new PluginConfig();
            Config.WriteObject(_config, true);
        }

        void Init()
        {
            _config = Config.ReadObject<PluginConfig>() ?? new PluginConfig();
        }

        void OnPlayerConnected(BasePlayer player)
        {
            ShowButton(player);
        }

        void OnPlayerInit(BasePlayer player)
        {
            ShowButton(player);
        }

        void OnPlayerRespawned(BasePlayer player)
        {
            ShowButton(player);
        }

        void ShowButton(BasePlayer player)
        {
            CuiHelper.DestroyUi(player, ButtonPanel);
            var elements = new CuiElementContainer();
            // Botón cuadrado con sprite interno de Rust
            var button = elements.Add(new CuiButton
            {
                Button = { Color = "0 0 0 0", Command = ButtonCommand, FadeIn = 0.2f }, // Color transparente para no tapar la imagen
                RectTransform = { AnchorMin = "0.64 0.02", AnchorMax = "0.68 0.06" },
                Text = { Text = "", FontSize = 0, Align = TextAnchor.MiddleCenter }
            }, "Hud", ButtonPanel);
            elements.Add(new CuiElement
            {
                Parent = ButtonPanel,
                Name = ButtonPanel + "_Icon",
                Components =
                {
                    new CuiRawImageComponent { Sprite = "assets/icons/backpack.png" },
                    new CuiRectTransformComponent { AnchorMin = "0 0", AnchorMax = "1 1" }
                }
            });
            CuiHelper.AddUi(player, elements);
        }

        [ConsoleCommand(ButtonCommand)]
        void CmdOpenBackpack(ConsoleSystem.Arg arg)
        {
            var player = arg.Player();
            if (player == null)
            {
                PrintWarning("No se pudo obtener el jugador al hacer clic en el botón.");
                return;
            }
            player.ChatMessage("Has hecho clic en el botón de la mochila.");
            // Intentar abrir la mochila usando el método del plugin
            var result = Backpacks?.Call("OpenBackpack", player);
            if (result == null)
            {
                // Si no funciona, intentar ejecutar el comando de chat
                player.SendConsoleCommand("chat.say", "/backpack");
            }
        }

        void OnPlayerDisconnected(BasePlayer player, string reason)
        {
            CuiHelper.DestroyUi(player, ButtonPanel);
        }
    }
}

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