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

FREE FPSRestart : 1.2.1 1.2.1

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Oxide.Plugins
{
    [Info("FPS Restart", "RustySpoon342", "1.2.1")]
    [Description("Restarts the server when FPS reaches a specific target")]
    public class FPSRestart : CovalencePlugin
    {
        private Timer timerAborted;
        private Timer timerFirstCheck;
        private Timer timerLastCheck;


        #region Configuration

        private ConfigData config = new ConfigData();

        private class ConfigData
        {
            [JsonProperty(PropertyName = "FPS To Trigger Restart")]
            public float FrameRate = 100;

            [JsonProperty(PropertyName = "How Long The Restart Should Be")]
            public float RestartTime = 300;

            [JsonProperty("Show Restart Message To Server")]
            public bool ShowMessage = true;
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();

            try
            {
                config = Config.ReadObject<ConfigData>();
                if (config == null)
                {
                    LoadDefaultConfig();
                }
            }
            catch
            {

                LoadDefaultConfig();
                return;
            }

            SaveConfig();
        }

        protected override void LoadDefaultConfig()
        {
            config = new ConfigData();
        }

        protected override void SaveConfig()
        {
            Config.WriteObject(config);
        }

        #endregion

        #region Oxide Hooks

        private void OnServerInitialized()
        {
            float args = config.RestartTime;

            int offset = (int)(args + 100);

            timerFirstCheck = timer.Every(offset, FramerateFirstCheck);
        }

        private void Unload()
        {
            config = null;
            timerFirstCheck.Destroy();
        }

        protected override void LoadDefaultMessages()
        {
            lang.RegisterMessages(new Dictionary<string, string>()
            {
                ["RestartMessage"] = "The Server Has Detected Low FPS That May Cause Lag.A Restart Has Begun, stash yo' loot!",
            }, this);
        }
        #endregion

        #region Core

        private void FramerateFirstCheck()
        {
            if (Performance.report.frameRate > config.FrameRate)
            {
                return;
            }

            timerLastCheck = timer.Once(60, FramerateLastCheck);
        }

        private void FramerateLastCheck()
        {
            string msg = string.Format(lang.GetMessage("RestartMessage", this));

            float args = config.RestartTime;

            if (Performance.report.frameRate > config.FrameRate)
            {
                return;
            }

            if (config.ShowMessage)
            {
             server.Broadcast(msg);
            }

            LogWarning("The Server Has Detected Low FPS That May Cause Lag.A Restart Has Begun!");

            server.Command("restart", args);

            timerFirstCheck.Destroy();
            timerLastCheck.Destroy();

            if (timerFirstCheck.Destroyed)
            {
                int offset = (int)(args + 60);

                timerAborted = timer.Once(offset, OnServerInitialized);
            }
        }

        #endregion
    }
}


//  Copyright (C) <2021>  <RustySpoon342>
//
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License, or
//  (at your option) any later version.//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
//  GNU General Public License for more details.//
//  You should have received a copy of the GNU General Public License
//  along with this program.If not, see <https://www.gnu.org/licenses></https:>.

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