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

FREE ExplosiveBearTrumpet : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
    [Info("Explosive Bear Trumpet", "Farmer Elias", "1.0.0")]
    class ExplosiveBearTrumpet : RustPlugin
    {
        private Dictionary<ulong, Timer> timers = new Dictionary<ulong, Timer>();
        private int killDistance;
        private int killProbability;
        private string bearPrefabPath = "assets/rust.ai/agents/bear/bear.prefab";
        private string polarbearPrefabPath = "assets/rust.ai/agents/bear/polarbear.prefab";

        void Init()
        {
            permission.RegisterPermission("explosivebeartrumpet.use", this);

            if (!Config.Exists())
            {
                LoadDefaultConfig();
            }
            LoadConfigValues();
        }

        void LoadConfigValues()
        {
            string killDistanceStr = Config.Get<string>("KillDistance");
            string killProbabilityStr = Config.Get<string>("KillProbability");

            if (!int.TryParse(killDistanceStr, out killDistance))
            {
                killDistance = 10; // Standardwert
            }

            if (!int.TryParse(killProbabilityStr, out killProbability))
            {
                killProbability = 10; // Standardwert
            }
        }

        void OnPlayerInput(BasePlayer player, InputState input)
        {
            if (player == null || !player.IsConnected)
                return;

            if (!permission.UserHasPermission(player.UserIDString, "explosivebeartrumpet.use"))
                return;

            if (input.IsDown(BUTTON.FIRE_SECONDARY) && player.GetActiveItem()?.info.shortname == "fun.trumpet")
            {
                if (!timers.ContainsKey(player.userID) || timers[player.userID] == null || timers[player.userID].Destroyed)
                {
                    timers[player.userID] = timer.Every(1f, () => CheckForBears(player));
                }
            }
            else
            {
                if (timers.ContainsKey(player.userID) && timers[player.userID] != null && !timers[player.userID].Destroyed)
                {
                    timers[player.userID].Destroy();
                }
            }
        }

        void CheckForBears(BasePlayer player)
        {
            List<BaseEntity> nearbyBears = new List<BaseEntity>();
            Vis.Entities(player.transform.position, killDistance, nearbyBears);

            foreach (var bear in nearbyBears)
            {
                if (bear != null && (bear.PrefabName.Equals(bearPrefabPath) || bear.PrefabName.Equals(polarbearPrefabPath)))
                {
                    int randomNumber = UnityEngine.Random.Range(0, 101);

                    if (randomNumber <= killProbability)
                    {
                        Vector3 bearPosition = bear.transform.position;

                        bearPosition.y += 1f;

                        Effect.server.Run("assets/bundled/prefabs/fx/gas_explosion_small.prefab", bearPosition);
                        Effect.server.Run("assets/prefabs/npc/m2bradley/effects/bradley_explosion.prefab", bearPosition);

                        bear.Kill();
                    }
                    else
                    {
                        
                        SendReply(player, "[Trumpet] The bear wasn't afraid of your trumpet");
                    }
                }
            }
        }

        protected override void LoadDefaultConfig()
        {
            Config["KillDistance"] = "10"; 
            Config["KillProbability"] = "10"; 
            SaveConfig();
        }
    }
}

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