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

FREE LifeStealer : 1.0.5 1.0.5

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

namespace Oxide.Plugins
{
    [Info("LifeStealer", "redBDGR", "1.0.5")]
    [Description("Give players health when they damage someone")]

    class LifeStealer : RustPlugin
    {
        private const string permissionName = "lifestealer.use";
        private List<object> animals;
        public bool animalsEnabled;
        private bool playersEnabled;

        public double healPercent = 0.5;
        public float staticHealAmount = 5.0f;
        public bool staticHealEnabled;

        private static List<object> AnimalList()
        {
            var al = new List<object> {"boar", "horse", "stag", "chicken", "wolf", "bear"};
            return al;
        }

        private void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
        {
            if (animals.Contains(entity.ShortPrefabName))
                goto skip;
            if (!(entity is BasePlayer))
                return;
            if (!(info.Initiator is BasePlayer))
                return;
            if (playersEnabled == false)
                return;
            skip:
            if (info.damageTypes.GetMajorityDamageType() == DamageType.Bleeding) return;

            var initPlayer = info.InitiatorPlayer;
            if (initPlayer == null) return;
            if (!permission.UserHasPermission(initPlayer.UserIDString, permissionName)) return;

            // Static Healing
            if (staticHealEnabled)
            {
                initPlayer.Heal(staticHealAmount);
                return;
            }

            // % Healing
            var healAmount = Convert.ToSingle(info.damageTypes.Total() * healPercent);
            if (!initPlayer.IsConnected) return;
            if (healAmount < 1) return;
            initPlayer.Heal(healAmount);
        }

        private object GetConfig(string menu, string datavalue, object defaultValue)
        {
            var data = Config[menu] as Dictionary<string, object>;
            if (data == null)
            {
                data = new Dictionary<string, object>();
                Config[menu] = data;
                Changed = true;
            }
            object value;
            if (!data.TryGetValue(datavalue, out value))
            {
                value = defaultValue;
                data[datavalue] = value;
                Changed = true;
            }
            return value;
        }

        #region config

        private void LoadVariables()
        {
            healPercent = Convert.ToSingle(GetConfig("Settings", "Heal Percent", 0.5f));
            staticHealAmount = Convert.ToSingle(GetConfig("Static Heal", "Static Heal Amount", 5.0f));
            staticHealEnabled = Convert.ToBoolean(GetConfig("Static Heal", "Static Heal Enabled", false));
            animalsEnabled = Convert.ToBoolean(GetConfig("Settings", "animals Enabled", false));
            playersEnabled = Convert.ToBoolean(GetConfig("Settings", "Players Enabeld", true));
            animals = (List<object>) GetConfig("Settings", "Enabled animals", AnimalList());

            if (!Changed) return;
            SaveConfig();
            Changed = false;
        }

        protected override void LoadDefaultConfig()
        {
            Config.Clear();
            LoadVariables();
        }

        private void Init()
        {
            LoadVariables();
            permission.RegisterPermission(permissionName, this);
            Puts("Still works");
        }

        private bool Changed;

        #endregion
    }
}

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