C#:
using System.Collections.Generic;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("Thieving", "bsdinis", "0.0.2")]
[Description("Drop random items from your victim when you hit them with a Torch.")]
class Thieving : RustPlugin
{
void Loaded()
{
permission.RegisterPermission("thieving.use", this);
permission.RegisterPermission("thieving.immune", this);
permission.RegisterPermission("thieving.nocooldown", this);
}
List<ulong> cooldown = new List<ulong>();
void OnMeleeAttack(BasePlayer attacker, HitInfo info)
{
if (attacker?.GetActiveItem().info.shortname != "torch" || !permission.UserHasPermission(attacker.UserIDString, "thieving.use") || cooldown.Contains(attacker.userID)) return;
var victim = info?.HitEntity as BasePlayer;
if (victim == null || !victim.userID.IsSteamId() || permission.UserHasPermission(victim.UserIDString, "thieving.immune")) return;
List<Item> victimItems = new List<Item>();
victimItems.AddRange(victim.inventory.containerMain.itemList);
victimItems.AddRange(victim.inventory.containerBelt.itemList);
victimItems.AddRange(victim.inventory.containerWear.itemList);
var victimActiveItem = victim.GetActiveItem();
if (victimActiveItem != null && victimItems.Contains(victimActiveItem)) victimItems.Remove(victimActiveItem);
if (victimItems.Count < 1) return;
int a = Random.Range(1, 3);
for (int i = 0; i < a && victimItems.Count > 0; i++)
{
int r = Random.Range(0, victimItems.Count - 1);
victimItems[r].DropAndTossUpwards(victim.transform.position);
victimItems.Remove(victimItems[r]);
}
if (permission.UserHasPermission(attacker.UserIDString, "thieving.nocooldown")) return;
cooldown.Add(attacker.userID);
timer.Once(5f, () => cooldown.Remove(attacker.userID) );
}
}
}