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

FREE AnimalRemover : 1.0.2 1.0.2

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

namespace Oxide.Plugins
{
    [Info("AnimalRemover", "Ankawi", "1.0.2")]
    [Description("Allows you to disable specific animals from spawning on the server")]
    public class AnimalRemover : RustPlugin
    {
        const string BearPrefab = "assets/bundled/prefabs/autospawn/animals/bear.prefab";
        const string BoarPrefab = "assets/bundled/prefabs/autospawn/animals/boar.prefab";
        const string ChickenPrefab = "assets/bundled/prefabs/autospawn/animals/chicken.prefab";
        const string HorsePrefab = "assets/bundled/prefabs/autospawn/animals/horse.prefab";
        const string StagPrefab = "assets/bundled/prefabs/autospawn/animals/stag.prefab";
        const string WolfPrefab = "assets/bundled/prefabs/autospawn/animals/wolf.prefab";

        new void LoadConfig()
        {
            SetConfig("Disable Bear Spawning", false);
            SetConfig("Disable Boar Spawning", false);
            SetConfig("Disable Chicken Spawning", false);
            SetConfig("Disable Horse Spawning", false);
            SetConfig("Disable Stag Spawning", false);
            SetConfig("Disable Wolf Spawning", false);

            SaveConfig();
        }
        protected override void LoadDefaultConfig() => PrintWarning("Creating a new configuration file...");

        void OnServerInitialized()
        {
            LoadConfig();
            KillAnimals();
        }

        Dictionary<string, IGrouping<string, BaseEntity>> GetAnimals()
        {
            return Resources.FindObjectsOfTypeAll<BaseNPC>().Where(c => c.isActiveAndEnabled).Cast<BaseEntity>().GroupBy(c => c.ShortPrefabName).ToDictionary(c => c.Key, c => c);
        }

        void KillAnimals()
        {
            var animalList = GetAnimals();
            foreach (var g in animalList)
            {
                foreach (var animal in g.Value)
                {
                    if ((bool)Config["Disable Bear Spawning"])
                    {
                        if (animal.PrefabName.Contains(BearPrefab))
                        {
                            animal.Kill();
                        }
                    }
                    if ((bool)Config["Disable Boar Spawning"])
                    {
                        if (animal.PrefabName.Contains(BoarPrefab))
                        {
                            animal.Kill();
                        }
                    }
                    if ((bool)Config["Disable Chicken Spawning"])
                    {
                        if (animal.PrefabName.Contains(ChickenPrefab))
                        {
                            animal.Kill();
                        }
                    }
                    if ((bool)Config["Disable Horse Spawning"])
                    {
                        if (animal.PrefabName.Contains(HorsePrefab))
                        {
                            animal.Kill();
                        }
                    }
                    if ((bool)Config["Disable Stag Spawning"])
                    {
                        if (animal.PrefabName.Contains(StagPrefab))
                        {
                            animal.Kill();
                        }
                    }
                    if ((bool)Config["Disable Wolf Spawning"])
                    {
                        if (animal.PrefabName.Contains(WolfPrefab))
                        {
                            animal.Kill();
                        }
                    }
                }
            }
        }
        void OnEntitySpawned(BaseNetworkable entity)
        {
            KillAnimals();
        }
        void SetConfig(params object[] args)
        {
            List<string> stringArgs = (from arg in args select arg.ToString()).ToList<string>();
            stringArgs.RemoveAt(args.Length - 1);

            if (Config.Get(stringArgs.ToArray()) == null) Config.Set(args);
        }
    }
}

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