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

FREE EmptyLowFPS : 0.0.4 0.0.4

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
namespace Oxide.Plugins
{
    [Info("EmptyLowFPS", "Dezito", "0.0.4", ResourceId = 1889)]
    [Description("Set low cpu usage when no players connected")]

    class EmptyLowFPS : RustPlugin
    {
        private static bool UseFPSLimit = true;
        private static int MaxFPSLimit = 256;
        private static int EmptyFPSLimit = 30;

        private static bool UseTickrate = true;
        private static int MaxTickrate = 30;
        private static int EmptyTickrate = 10;

        void LoadDefaultConfig() { }

        private void CheckCfg<T>(string Key, ref T var)
        {
            if (Config[Key] is T)
                var = (T)Config[Key];
            else
                Config[Key] = var;
        }

        void Init()
        {
            CheckCfg<bool>("UseFPSLimit", ref UseFPSLimit);
            CheckCfg<int>("MaxFPSLimit", ref MaxFPSLimit);
            CheckCfg<int>("EmptyFPSLimit", ref EmptyFPSLimit);

            CheckCfg<bool>("UseTickrate", ref UseTickrate);
            CheckCfg<int>("MaxTickrate", ref MaxTickrate);
            CheckCfg<int>("EmptyTickrate", ref EmptyTickrate);

            SaveConfig();


            if (BasePlayer.activePlayerList.Count == 0)
            {
                if (UseFPSLimit)
                    ServerEmpty_FPSLimit();
                if (UseTickrate)
                    ServerEmpty_Tickrate();
            }
            else
            {
                if (UseFPSLimit)
                    ServerNotEmpty_FPSLimit();
                if (UseTickrate)
                    ServerNotEmpty_Tickrate();
            }
        }

        void OnPlayerConnected(Network.Message packet)
        {
            if (BasePlayer.activePlayerList.Count == 0)
            {
                if (UseFPSLimit)
                    ServerNotEmpty_FPSLimit();
                if (UseTickrate)
                ServerNotEmpty_Tickrate();
            }
        }

        void OnPlayerDisconnected(BasePlayer player, string reason)
        {
            if (BasePlayer.activePlayerList.Count == 1)
            {
                if (UseFPSLimit)
                    ServerEmpty_FPSLimit();
                if (UseTickrate)
                    ServerEmpty_Tickrate();
            }
        }

        void Unload()
        {
            if (MaxFPSLimit != null)
                ConsoleSystem.Run(ConsoleSystem.Option.Server, "fps.limit "+MaxFPSLimit);
                return;
            if (MaxTickrate != null)
                ConsoleSystem.Run(ConsoleSystem.Option.Server, "server.tickrate "+MaxTickrate);
                return;
            ConsoleSystem.Run(ConsoleSystem.Option.Server, "fps.limit 256");
            ConsoleSystem.Run(ConsoleSystem.Option.Server, "server.tickrate 30");
        }

        void ServerNotEmpty_FPSLimit()
        {
            Puts("Server is NOT empty setting fps.limit to " + MaxFPSLimit);
            ConsoleSystem.Run(ConsoleSystem.Option.Server, "fps.limit "+ MaxFPSLimit);
        }

        void ServerEmpty_FPSLimit()
        {
            Puts("Server is empty setting fps.limit to " + EmptyFPSLimit);
            ConsoleSystem.Run(ConsoleSystem.Option.Server, "fps.limit " + EmptyFPSLimit);
        }

        void ServerNotEmpty_Tickrate()
        {
            Puts("Server is NOT empty setting server.tickrate to " + MaxTickrate);
            ConsoleSystem.Run(ConsoleSystem.Option.Server, "server.tickrate "+ MaxTickrate);
        }

        void ServerEmpty_Tickrate()
        {
            Puts("Server is empty setting server.tickrate to " + EmptyTickrate);
            ConsoleSystem.Run(ConsoleSystem.Option.Server, "server.tickrate " + EmptyTickrate);
        }
    }
}

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