Плагин InfoPanel 0.9.5

Нет прав для скачивания
  • Адские скидки!
    Не успела закончиться старая акция, как началась новая "Адские скидки!". Вы и так знаете что у нас самые низкие цены на плагины, но с сегодняшнего дня они стали еще ниже на 30-50% относительно прошлых цен!
    Снижение цен на рекламу!
    С сегодняшнего дня мы снижаем цену на пакеты рекламы. Это отличный способ прорекламировать свои услуги на крупнейшей в СНГ площадке - Oxide Россия!
untitled-1-jpg.12976.jpg


Особенности:

- Игровое / Серверное Время.
- Счетчик игроков на сервере
- Счетчик спящих игроков
- Окно с сообщениями
- Оповещение о самолете
- Оповещение о вертолете
- Оповещение о радиации
- Координаты
- Полная кастомизация
- Пользовательская панель: Простой текст и иконки
- API


Чат команды:
/ipanel
- Показать доступные команды.
/ipanel hide - Скрыть информационную панель.
/ipanel show - Показать информационную панель.
/ipanel clock game - Часы будут показывать игровое время.
/ipanel clock server <+/-часы> - Часы будут показывать реальное время. Вы можете добавить или удалить часы.
/ipanel timeformat - Показать доступные форматы времени.
/ipanel timeformat <номер> - Выбрать свой любимый формат времени из списка.
Конфигурация:
Available:
(По умолчанию: true), С помощью этой опции вы можете включить или выключить панель.
Dock: (По умолчанию: Нижняя Панель) , С помощью этой опции можно выбрать док-панель.
Order: С помощью этой опции вы можете установить порядок панелей.
AnchorX: (По умолчанию: Слева), Вы можете потянуть панель в левую или правую сторону дока. (Слева/Справа)
AnchorY: (По умолчанию: Снизу), Вы можете потянуть панель в верхней или нижней части док-станции / экрана. (Сверху/Снизу)
Width: Ширина панели. (0-1)
Height: Высота панели. (0-1)
Margin: (По умолчанию: 0 0 0 0.005) Края панели (Сверху, справа, снизу, слева)
Autoload: (По умолчанию: true) Если его выключить (false), панель не будет отображаться автоматически, но другие плагины могут вызвать его.

Пример API:
Код:
using System;
using System.Collections.Generic;

using Oxide.Core.Plugins;

namespace Oxide.Plugins
{
    [Info("ApiTest", "Ghosst", "1.0.0")]
    [Description("OnlinePlayers Counter.")]
    public class ApiTest : RustPlugin
    {

        Timer CounterTimer;
        Timer BlinkTimer;
        Timer RandPTimer;

        int Count = 0;
        bool IsActive = true;

        string RandomPlayerID;

        bool RandomPlayername = false;
        bool Blinker = false;
        bool CounterP = false;

        List<string> Panels = new List<string> { "BlinkPanel", "CounterPanel", "RandomPlayernamePanel" };

        [PluginReference]
        Plugin InfoPanel;
        void Loaded()
        {
            if(InfoPanel)
            {
                InfoPanelInit();
            }
        }

        void OnPluginLoaded(Plugin InfoPanel)
        {
            if (InfoPanel.Title == "InfoPanel")
            {
                InfoPanelInit();
            }
        }

        public void InfoPanelInit()
        {
            //Send Panel names to the infopanel.
            InfoPanel.Call("SendPanelInfo", "ApiTest", Panels);

            AddRandomPlayerNamePanel();
            AddBlinkPanel();
            AddCounterPanel();

            if (CounterTimer == null & CounterP)
            {
                CounterTimer = timer.Repeat(5, 0, () => Counter());
            }

            if (BlinkTimer == null & Blinker)
            {
                BlinkTimer = timer.Repeat(5, 0, () => Blink());
            }

            if (RandPTimer == null & RandomPlayername)
            {
                RandPTimer = timer.Repeat(5, 0, () => RandomPlayer());
            }
 
        }

        /// <summary>
        /// Load the panel
        /// </summary>
        public void AddRandomPlayerNamePanel()
        {
            RandomPlayername = (bool)InfoPanel.Call("PanelRegister", "ApiTest", "RandomPlayernamePanel", RndPlayerNameCfg);
        }

        /// <summary>
        /// Load the panel.
        /// Show the panel everyone.
        /// </summary>
        public void AddBlinkPanel()
        {
            Blinker = (bool)InfoPanel.Call("PanelRegister", "ApiTest", "BlinkPanel", BlinkPCfg);
            InfoPanel.Call("ShowPanel", "ApiTest", "BlinkPanel");
        }

        /// <summary>
        /// Load the panel.
        /// Show the panel everyone.
        /// </summary>
        public void AddCounterPanel()
        {
            CounterP = (bool)InfoPanel.Call("PanelRegister", "ApiTest", "CounterPanel", CounterPCfg);
            InfoPanel.Call("ShowPanel", "ApiTest", "CounterPanel");
        }

        /// <summary>
        /// Hide or show the panel
        /// </summary>
        public void Blink()
        {
            if(IsActive)
            {
                IsActive = false;
                InfoPanel.Call("HidePanel", "ApiTest", "BlinkPanel");
            }
            else
            {
                IsActive = true;
                InfoPanel.Call("ShowPanel", "ApiTest", "BlinkPanel");
            }
        }

        /// <summary>
        /// Refresh the counter to every active player.
        /// </summary>
        public void Counter()
        {
            Count += 5;

            if (InfoPanel && CounterP)
            {
                InfoPanel.Call("SetPanelAttribute", "ApiTest", "CounterPanelText", "Content", Count.ToString());
                InfoPanel.Call("SetPanelAttribute", "ApiTest", "CounterPanelText", "FontColor", "0.6 0.1 0.1 1");
                InfoPanel.Call("RefreshPanel", "ApiTest", "CounterPanel");
            }
        }

        /// <summary>
        /// Show his name to a random player. But just only for him.
        /// </summary>
        public void RandomPlayer()
        {
            if(RandomPlayerID != null)
                InfoPanel.Call("HidePanel", "ApiTest", "RandomPlayernamePanel", RandomPlayerID);

            if(BasePlayer.activePlayerList.Count > 0)
            {

                var rand = new System.Random();
                BasePlayer player = BasePlayer.activePlayerList[rand.Next(BasePlayer.activePlayerList.Count)];
                RandomPlayerID = player.UserIDString;

                if (InfoPanel && RandomPlayername)
                {
                    InfoPanel.Call("SetPanelAttribute", "ApiTest", "RandomPlayernamePanelText", "Content", player.displayName, RandomPlayerID);
                    InfoPanel.Call("SetPanelAttribute", "ApiTest", "RandomPlayernamePanelText", "FontColor", "0.2 0.3 0.5 1", RandomPlayerID);
                    InfoPanel.Call("ShowPanel", "ApiTest", "RandomPlayernamePanel", RandomPlayerID);
                }
            }
 
        }

        /*
            Example Configs. Theres is no required option.
        */

        string RndPlayerNameCfg = @"
        {
            ""Autoload"": false,
            ""AnchorX"": ""Left"",
            ""AnchorY"": ""Bottom"",
            ""Available"": true,
            ""BackgroundColor"": ""0.1 0.1 0.1 0.4"",
            ""Dock"": ""BottomPanel"",
            ""Width"": 0.07,
            ""Height"": 0.95,
            ""Margin"": ""0 0 0 0.005"",
            ""Order"": 0,
            ""Image"": {
              ""AnchorX"": ""Left"",
              ""AnchorY"": ""Bottom"",
              ""Available"": true,
              ""BackgroundColor"": ""0.1 0.1 0.1 0.3"",
              ""Dock"": ""BottomPanel"",
              ""Height"": 0.8,
              ""Margin"": ""0 0.05 0.1 0.05"",
              ""Order"": 1,
              ""Url"": ""http://i.imgur.com/dble6vf.png"",
              ""Width"": 0.22
            },
            ""Text"": {
              ""Align"": ""MiddleCenter"",
              ""AnchorX"": ""Left"",
              ""AnchorY"": ""Bottom"",
              ""Available"": true,
              ""BackgroundColor"": ""0.1 0.1 0.1 0.3"",
              ""Dock"": ""BottomPanel"",
              ""FontColor"": ""1 1 1 1"",
              ""FontSize"": 14,
              ""Content"": ""APITest Bottom"",
              ""Height"": 1.0,
              ""Margin"": ""0 0 0 0"",
              ""Order"": 2,
              ""Width"": 0.63
            },
        }";

        string BlinkPCfg = @"{}";

        string CounterPCfg = @"
        {
            ""Dock"": ""TopPanel"",
            ""Text"": {
                ""Content"": ""APITest Top""
            }
        }";
    }
}
Код:
using System;
using System.Collections.Generic;

using Oxide.Core.Plugins;

namespace Oxide.Plugins
{
    [Info("ApiTest", "Ghosst", "1.0.0")]
    [Description("OnlinePlayers Counter.")]
    public class ApiTest : RustPlugin
    {

        Timer CounterTimer;
        Timer BlinkTimer;
        Timer RandPTimer;

        int Count = 0;
        bool IsActive = true;

        string RandomPlayerID;

        bool RandomPlayername = false;
        bool Blinker = false;
        bool CounterP = false;

        List<string> Panels = new List<string> { "BlinkPanel", "CounterPanel", "RandomPlayernamePanel" };

        [PluginReference]
        Plugin InfoPanel;
        void Loaded()
        {
            if(InfoPanel)
            {
                InfoPanelInit();
            }
        }

        void OnPluginLoaded(Plugin InfoPanel)
        {
            if (InfoPanel.Title == "InfoPanel")
            {
                InfoPanelInit();
            }
        }

        public void InfoPanelInit()
        {
            //Send Panel names to the infopanel.
            InfoPanel.Call("SendPanelInfo", "ApiTest", Panels);

            AddRandomPlayerNamePanel();
            AddBlinkPanel();
            AddCounterPanel();

            if (CounterTimer == null & CounterP)
            {
                CounterTimer = timer.Repeat(5, 0, () => Counter());
            }

            if (BlinkTimer == null & Blinker)
            {
                BlinkTimer = timer.Repeat(5, 0, () => Blink());
            }

            if (RandPTimer == null & RandomPlayername)
            {
                RandPTimer = timer.Repeat(5, 0, () => RandomPlayer());
            }
 
        }

        /// <summary>
        /// Load the panel
        /// </summary>
        public void AddRandomPlayerNamePanel()
        {
            RandomPlayername = (bool)InfoPanel.Call("PanelRegister", "ApiTest", "RandomPlayernamePanel", RndPlayerNameCfg);
        }

        /// <summary>
        /// Load the panel.
        /// Show the panel everyone.
        /// </summary>
        public void AddBlinkPanel()
        {
            Blinker = (bool)InfoPanel.Call("PanelRegister", "ApiTest", "BlinkPanel", BlinkPCfg);
            InfoPanel.Call("ShowPanel", "ApiTest", "BlinkPanel");
        }

        /// <summary>
        /// Load the panel.
        /// Show the panel everyone.
        /// </summary>
        public void AddCounterPanel()
        {
            CounterP = (bool)InfoPanel.Call("PanelRegister", "ApiTest", "CounterPanel", CounterPCfg);
            InfoPanel.Call("ShowPanel", "ApiTest", "CounterPanel");
        }

        /// <summary>
        /// Hide or show the panel
        /// </summary>
        public void Blink()
        {
            if(IsActive)
            {
                IsActive = false;
                InfoPanel.Call("HidePanel", "ApiTest", "BlinkPanel");
            }
            else
            {
                IsActive = true;
                InfoPanel.Call("ShowPanel", "ApiTest", "BlinkPanel");
            }
        }

        /// <summary>
        /// Refresh the counter to every active player.
        /// </summary>
        public void Counter()
        {
            Count += 5;

            if (InfoPanel && CounterP)
            {
                InfoPanel.Call("SetPanelAttribute", "ApiTest", "CounterPanelText", "Content", Count.ToString());
                InfoPanel.Call("SetPanelAttribute", "ApiTest", "CounterPanelText", "FontColor", "0.6 0.1 0.1 1");
                InfoPanel.Call("RefreshPanel", "ApiTest", "CounterPanel");
            }
        }

        /// <summary>
        /// Show his name to a random player. But just only for him.
        /// </summary>
        public void RandomPlayer()
        {
            if(RandomPlayerID != null)
                InfoPanel.Call("HidePanel", "ApiTest", "RandomPlayernamePanel", RandomPlayerID);

            if(BasePlayer.activePlayerList.Count > 0)
            {

                var rand = new System.Random();
                BasePlayer player = BasePlayer.activePlayerList[rand.Next(BasePlayer.activePlayerList.Count)];
                RandomPlayerID = player.UserIDString;

                if (InfoPanel && RandomPlayername)
                {
                    InfoPanel.Call("SetPanelAttribute", "ApiTest", "RandomPlayernamePanelText", "Content", player.displayName, RandomPlayerID);
                    InfoPanel.Call("SetPanelAttribute", "ApiTest", "RandomPlayernamePanelText", "FontColor", "0.2 0.3 0.5 1", RandomPlayerID);
                    InfoPanel.Call("ShowPanel", "ApiTest", "RandomPlayernamePanel", RandomPlayerID);
                }
            }
 
        }

        /*
            Example Configs. Theres is no required option.
        */

        string RndPlayerNameCfg = @"
        {
            ""Autoload"": false,
            ""AnchorX"": ""Left"",
            ""AnchorY"": ""Bottom"",
            ""Available"": true,
            ""BackgroundColor"": ""0.1 0.1 0.1 0.4"",
            ""Dock"": ""BottomPanel"",
            ""Width"": 0.07,
            ""Height"": 0.95,
            ""Margin"": ""0 0 0 0.005"",
            ""Order"": 0,
            ""Image"": {
              ""AnchorX"": ""Left"",
              ""AnchorY"": ""Bottom"",
              ""Available"": true,
              ""BackgroundColor"": ""0.1 0.1 0.1 0.3"",
              ""Dock"": ""BottomPanel"",
              ""Height"": 0.8,
              ""Margin"": ""0 0.05 0.1 0.05"",
              ""Order"": 1,
              ""Url"": ""http://i.imgur.com/dble6vf.png"",
              ""Width"": 0.22
            },
            ""Text"": {
              ""Align"": ""MiddleCenter"",
              ""AnchorX"": ""Left"",
              ""AnchorY"": ""Bottom"",
              ""Available"": true,
              ""BackgroundColor"": ""0.1 0.1 0.1 0.3"",
              ""Dock"": ""BottomPanel"",
              ""FontColor"": ""1 1 1 1"",
              ""FontSize"": 14,
              ""Content"": ""APITest Bottom"",
              ""Height"": 1.0,
              ""Margin"": ""0 0 0 0"",
              ""Order"": 2,
              ""Width"": 0.63
            },
        }";

        string BlinkPCfg = @"{}";

        string CounterPCfg = @"
        {
            ""Dock"": ""TopPanel"",
            ""Text"": {
                ""Content"": ""APITest Top""
            }
        }";
    }
}
Автор
MrFallen
Скачиваний
104
Первый выпуск
Обновление
Оценка
5.00 звёзд 1 оценок

Еще ресурсы от MrFallen

  • Плагин Friends
    Плагин для сервера Rust позволяет управлять списком друзей
  • Плагин BetterChat
    Настройка цвета чата, префикс и многое другое для сервера Rust
  • Плагин QuickSort
    Быстрая сортировка ресурсов.
  • Плагин Gather Manager
    Позволяет настроить рейты на добычу ресурсов.
  • Плагин Crafting Controller
    С помощью данного плагина можно контролировать скорость создания предметов и блокировать их.