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

FREE NoWeaponDrop : 0.2.3 0.2.3

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

namespace Oxide.Plugins
{
    [Info("NoWeaponDrop", "Fujikura", "0.2.3", ResourceId = 1960)]
	[Description("Prevents dropping of active weapon on wounded or headshot/instant-kill")]
    class NoWeaponDrop : RustPlugin
    {
		[PluginReference]
		Plugin RestoreUponDeath;
		
		private bool Changed = false;
		private bool usePermission;
		private string permissionName;
		private bool disableForROD;
		
		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;
        }
		
		void LoadVariables()
        {
			usePermission = Convert.ToBoolean(GetConfig("Settings", "Use permissions", false));
			permissionName = Convert.ToString(GetConfig("Settings", "Permission name", "noweapondrop.active"));
			disableForROD =  Convert.ToBoolean(GetConfig("Settings", "Disable death handler when RestoreUponDeath was found", false));

            if (!Changed) return;
            SaveConfig();
            Changed = false;
        }
		
		protected override void LoadDefaultConfig()
        {
            Config.Clear();
            LoadVariables();
        }
		
		void Loaded()
		{
			LoadVariables();
			if (!permission.PermissionExists(permissionName)) permission.RegisterPermission(permissionName, this);
		}
				
		void OnItemRemovedFromContainer(ItemContainer container, Item item)
		{
			if (container.HasFlag(ItemContainer.Flag.Belt))		
			NextTick(() => {
				if(usePermission && !permission.UserHasPermission(container.playerOwner.userID.ToString(), permissionName)) return;
				if (container.playerOwner.IsWounded() && (item.info.category.value__ == 0 ||  item.info.category.value__ == 5))
					item.MoveToContainer(container);
			});
		}
		
		object OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
        {
			if ((entity as BasePlayer) != null && ( info.isHeadshot == true || info.damageTypes.Has(Rust.DamageType.Suicide) )) 
			{
				if(RestoreUponDeath && disableForROD) return null;
				if(usePermission && !permission.UserHasPermission((entity as BasePlayer).userID.ToString(), permissionName)) return null;
				(entity as BasePlayer).svActiveItemID = 0u;
				(entity as BasePlayer).SendNetworkUpdate(BasePlayer.NetworkQueue.Update);
			}
			return null;
        }
	}
}

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