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

FREE Extract : 1.0.23 1.0.23

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

namespace Oxide.Plugins
{
    [Info("Extract", "vetrovskiy", "1.0.23")]
    [Description("Setting up the dispenser bonus multiplier")]
    public class Extract : RustPlugin
    {
        private const bool LangEn = true;
        private const string PermissionUse = "extract.use";

        private PluginConfig _config;

        private class PluginConfig
        {
            [JsonProperty(LangEn ? "Bonus multiplier" : "Бонус коэффициент")]
            public int MultiplierValue = 4;
            
            [JsonProperty(LangEn ? "Use a random chance?" : "Использовать рандом шанс?")] 
            public bool UseChance = false;
            
            [JsonProperty(LangEn ? "Bonus drop chance (from 1% to 100%)" : "Шанс бонусного дропа (от 1% до 100%)")] 
            public int ChanceValue = 50;
        }
        
        protected override void LoadConfig()
        {
            base.LoadConfig();
            try
            {
                _config = Config.ReadObject<PluginConfig>() ?? throw new Exception();
                CheckConfig();
            }
            catch
            {
                PrintError(LangEn ? "Errors have been identified in your configuration. Recreating the config." : "Были найдены ошибки в конфиге. Пересоздаю конфиг");
                LoadDefaultConfig(); 
            }

            NextTick(SaveConfig);
        }
        protected override void LoadDefaultConfig() => _config = new PluginConfig();
        
        protected override void SaveConfig() => Config.WriteObject(_config);
        
        private void CheckConfig()
        {
            if (_config.MultiplierValue <= 0)
                _config.MultiplierValue = 4;

            if (_config.ChanceValue <= 0 || _config.ChanceValue > 100)
                _config.ChanceValue = 50;
        }

        private void OnServerInitialized() 
        {
            permission.RegisterPermission(PermissionUse, this); 
            Puts(LangEn ? "Successfully loaded" : "Успешно загружен");
        }
        
        private object OnDispenserBonus(ResourceDispenser resource, BasePlayer player, Item item)
        {
            if (!permission.UserHasPermission(player.UserIDString, PermissionUse)) return null;
            if (_config.UseChance)
            {
                float randomAmount = UnityEngine.Random.Range(0, 100);
                if (randomAmount >= _config.ChanceValue) return null;
            }
            item.amount *= _config.MultiplierValue; 
            return item; 
        }
    }
}

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