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

FREE PowerToolsPlus : 1.0.2 1.0.2

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

namespace Oxide.Plugins
{
    [Info("Power Tools Plus", "Krungh Crow", "1.0.2")]
    [Description("PowerTools configuration")]

    class PowerToolsPlus : RustPlugin
    {

        #region Variables

        const string Default_Perm = "powertoolsplus.default";
        const string Vip_Perm = "powertoolsplus.vip";
        const string Plus_Perm = "powertoolsplus.plus";
        const string ChainDura_Perm = "powertoolsplus.chainsaw";
        const string JackDura_Perm = "powertoolsplus.jackhammer";

        #endregion

        #region Configuration
        void Init()
        {
            if (!LoadConfigVariables())
            {
            Puts("Config file issue detected. Please delete file, or check syntax and fix.");
            return;
            }
            permission.RegisterPermission(Default_Perm, this);
            permission.RegisterPermission(Vip_Perm, this);
            permission.RegisterPermission(Plus_Perm, this);
            permission.RegisterPermission(ChainDura_Perm, this);
            permission.RegisterPermission(JackDura_Perm, this);
        }

        private ConfigData configData;

        class ConfigData
        {
            [JsonProperty(PropertyName = "Durability Settings")]
            public Durabilitys Durability = new Durabilitys();
            [JsonProperty(PropertyName = "Chainsaw Settings Default")]
            public SettingsChain cfgchain = new SettingsChain();
            [JsonProperty(PropertyName = "Chainsaw Settings Vip")]
            public SettingsChainV cfgchainV = new SettingsChainV();
            [JsonProperty(PropertyName = "Chainsaw Settings Plus")]
            public SettingsChainP cfgchainP = new SettingsChainP();
        }

        class Durabilitys
        {
            [JsonProperty(PropertyName = "Chainsaw : No Durability loss (Global)")]
            public bool Chainsawdura = false;
            [JsonProperty(PropertyName = "Jackhammer : No Durability loss (Global)")]
            public bool Jackdura = false;
        }

        class SettingsChain
        {
            [JsonProperty(PropertyName = "Chainsaw start chance")]
            public float chance = 0.33f;
            [JsonProperty(PropertyName = "Chainsaw Fuel Capacity")]
            public int capacity = 100;
            [JsonProperty(PropertyName = "Chainsaw Fuel consumption")]
            public float fuelsec = 1.0f;
        }

        class SettingsChainV
        {
            [JsonProperty(PropertyName = "Chainsaw start chance")]
            public float chanceV = 0.75f;
            [JsonProperty(PropertyName = "Chainsaw Fuel Capacity")]
            public int capacityV = 250;
            [JsonProperty(PropertyName = "Chainsaw Fuel consumption")]
            public float fuelsecV = 0.5f;
        }

        class SettingsChainP
        {
            [JsonProperty(PropertyName = "Chainsaw start chance")]
            public float chanceP = 1.0f;
            [JsonProperty(PropertyName = "Chainsaw Fuel Capacity")]
            public int capacityP = 500;
            [JsonProperty(PropertyName = "Chainsaw Fuel consumption")]
            public float fuelsecP = 0.33f;
        }

        private bool LoadConfigVariables()
        {
            try
            {
            configData = Config.ReadObject<ConfigData>();
            }
            catch
            {
            return false;
            }
            SaveConf();
            return true;
        }

        protected override void LoadDefaultConfig()
        {
            Puts("Fresh install detected Creating a new config file.");
            configData = new ConfigData();
            SaveConf();
        }

        void SaveConf() => Config.WriteObject(configData, true);
        #endregion

        #region Methods

        private void OnActiveItemChanged(BasePlayer player, Item oldItem, Item newItem)
        {
            if (player == null || newItem == null || !player.userID.IsSteamId()) return;
            if (newItem.info.shortname == "chainsaw")
            {
                var chainsaw = newItem.GetHeldEntity() as Chainsaw;
                if (chainsaw == null) return;
                if (permission.UserHasPermission(player.UserIDString, Plus_Perm))
                {
                    chainsaw.engineStartChance = configData.cfgchainP.chanceP;//1.0 is always
                    chainsaw.maxAmmo = configData.cfgchainP.capacityP;//max fuel containersize
                    chainsaw.fuelPerSec = configData.cfgchainP.fuelsecP;//fuel per sec/tick
                    return;
                }

                if (permission.UserHasPermission(player.UserIDString, Vip_Perm))
                {
                    chainsaw.engineStartChance = configData.cfgchainV.chanceV;
                    chainsaw.maxAmmo = configData.cfgchainV.capacityV;
                    chainsaw.fuelPerSec = configData.cfgchainV.fuelsecV;
                    return;
                }

                if (permission.UserHasPermission(player.UserIDString, Default_Perm))
                {
                    chainsaw.engineStartChance = configData.cfgchain.chance;
                    chainsaw.maxAmmo = configData.cfgchain.capacity;
                    chainsaw.fuelPerSec = configData.cfgchain.fuelsec;
                    return;
                }
            }
        }
        void OnLoseCondition(Item item, ref float amount)
        {
            if (item != null)
            {
                BasePlayer player;
                if (item.GetOwnerPlayer() == null)
                {
                    if (item?.info == null) return;
                    player = item?.GetRootContainer()?.GetOwnerPlayer();
                    if (player == null)
                        return;
                }
                else player = item.GetOwnerPlayer();
                if (player != null)
                {
                    var def = ItemManager.FindItemDefinition(item.info.itemid);

                    if (configData.Durability.Chainsawdura)
                    {
                        if (item.info.shortname == "chainsaw")
                        if (item.hasCondition)
                        item.RepairCondition(amount);
                    }

                    if (configData.Durability.Jackdura)
                    {
                        if (item.info.shortname == "jackhammer")
                        if (item.hasCondition)
                        item.RepairCondition(amount);
                    }

                    if (permission.UserHasPermission(player.UserIDString, ChainDura_Perm))
                    {
                        if (item.info.shortname == "chainsaw")
                        if (item.hasCondition)
                        item.RepairCondition(amount);
                    }
                    
                    if (permission.UserHasPermission(player.UserIDString, JackDura_Perm))
                    {
                        if (item.info.shortname == "jackhammer")
                        if (item.hasCondition)
                        item.RepairCondition(amount);
                    }
                }
            }          
            return;
        }
        #endregion
    }
}

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