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 cooldown = new List(); 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 victimItems = new List(); 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) ); } } }