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

FREE CactusDamage : 1.1.0 1.1.0

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

namespace Oxide.Plugins
{
    [Info("Cactus Damage", "birthdates", "1.1.0")]
    [Description("Cacti deal damage to players harvesting/colliding with them.")]
    public class CactusDamage : RustPlugin
    {
        #region Hooks
        void Init() => LoadConfig();

        void OnDispenserGather(ResourceDispenser dispenser, BasePlayer entity)
        {
            if (!dispenser.name.Contains("cactus")) return;
            Hurt(entity, _config.harvestingDamage, dispenser.GetComponent<BaseEntity>() ?? entity);
        }

        void OnEntityTakeDamage(BasePlayer entity, HitInfo info)
        {
            if(info.Initiator?.ShortPrefabName.Contains("cactus") == false || info.damageTypes.Get(Rust.DamageType.Slash) > 0 || info.damageTypes.Get(Rust.DamageType.Bleeding) > 0) return;
            Hurt(entity, _config.collisionDamage, info.Initiator ?? entity);
        }

        void Hurt(BasePlayer Player, Damage Damage, BaseEntity Initiator)
        {
            var Amount = Core.Random.Range(Damage.MinDamage, Damage.MaxDamage);
            Player.Hurt(Amount, Rust.DamageType.Slash, Initiator);
            Player.metabolism.bleeding.value += Amount / 2;
        }
        #endregion

        #region Configuration
        public ConfigFile _config;

        public class Damage
        {
            [JsonProperty("Min Damage")]
            public float MinDamage;
            [JsonProperty("Max Damage")]
            public float MaxDamage;
        }

        public class ConfigFile
        {
            [JsonProperty("Harvesting Damage")]
            public Damage harvestingDamage;

            [JsonProperty("Collision Damage")]
            public Damage collisionDamage;
            public static ConfigFile DefaultConfig() => new ConfigFile()
            {
                harvestingDamage = new Damage
                {
                    MinDamage = 2f,
                    MaxDamage = 5f
                },
                collisionDamage = new Damage
                {
                    MinDamage = 2f,
                    MaxDamage = 5f
                }
            };
        }
        
        protected override void LoadConfig()
        {
            base.LoadConfig();
            _config = Config.ReadObject<ConfigFile>();
            if(_config == null)
            {
                LoadDefaultConfig();
            }
        }
    
        protected override void LoadDefaultConfig()
        {
            _config = ConfigFile.DefaultConfig();
            PrintWarning("Default configuration has been loaded.");
        }

        protected override void SaveConfig() => Config.WriteObject(_config);
        #endregion
    }
}
//Generated with birthdates' Plugin Maker

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