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

FREE NoEffects : 1.0.0 1.0.0

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

namespace Oxide.Plugins
{
    [Info("No Effects", "Spike ft Darwick", "1.0.0")]
    [Description("Grants immunity to cold, heat, wet, or bleeding effects based on permissions")]
    public class NoEffects : CovalencePlugin
    {
        // Define permissions
        private const string PermissionCold = "noeffects.cold";
        private const string PermissionHeat = "noeffects.heat";
        private const string PermissionWet = "noeffects.wet";
        private const string PermissionBleed = "noeffects.bleed";

        // Initialize plugin
        private void Init()
        {
            // Register permissions
            permission.RegisterPermission(PermissionCold, this);
            permission.RegisterPermission(PermissionHeat, this);
            permission.RegisterPermission(PermissionWet, this);
            permission.RegisterPermission(PermissionBleed, this);

            // Subscribe to necessary events
            Subscribe(nameof(OnPlayerMetabolismUpdate));
            Subscribe(nameof(OnPlayerHurt));
            Subscribe(nameof(OnEntityTakeDamage));
        }

        // Handle player hurt event to prevent bleeding
        private void OnPlayerHurt(BasePlayer player, HitInfo info)
        {
            if (permission.UserHasPermission(player.UserIDString, PermissionBleed))
            {
                player.metabolism.bleeding.value = 0;
                player.InvokeRepeating(nameof(ClearBleeding), 0f, 1f);
            }
        }

        // Prevent bleeding effect from happening
        private void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
        {
            var player = entity.ToPlayer();
            if (player != null && permission.UserHasPermission(player.UserIDString, PermissionBleed))
            {
                player.metabolism.bleeding.value = 0;
                player.InvokeRepeating(nameof(ClearBleeding), 0f, 1f);
            }
        }

        // Clear bleeding repeatedly
        private void ClearBleeding(BasePlayer player)
        {
            if (player != null && permission.UserHasPermission(player.UserIDString, PermissionBleed))
            {
                player.metabolism.bleeding.value = 0;
            }
            else
            {
                player.CancelInvoke(nameof(ClearBleeding));
            }
        }

        // Handle player metabolism update to prevent cold, heat, and wet effects
        private void OnPlayerMetabolismUpdate(BasePlayer player, PlayerMetabolism metabolism)
        {
            if (permission.UserHasPermission(player.UserIDString, PermissionCold))
            {
                metabolism.temperature.min = Mathf.Max(metabolism.temperature.min, 0);
            }

            if (permission.UserHasPermission(player.UserIDString, PermissionHeat))
            {
                metabolism.temperature.max = Mathf.Min(metabolism.temperature.max, 0);
            }

            if (permission.UserHasPermission(player.UserIDString, PermissionWet))
            {
                metabolism.wetness.value = 0;
                player.InvokeRepeating(nameof(ClearWetness), 0f, 0.1f);
            }
        }

        // Clear wetness repeatedly
        private void ClearWetness(BasePlayer player)
        {
            if (player != null && permission.UserHasPermission(player.UserIDString, PermissionWet))
            {
                player.metabolism.wetness.value = 0;
            }
            else
            {
                player.CancelInvoke(nameof(ClearWetness));
            }
        }
    }
}

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