C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.IO;
using System.Collections.Generic;
using UnityEngine;
namespace Oxide.Plugins {
[Info("Triggered Explosive Charges", "EnigmaticDragon", "1.0.15", ResourceId = 2383)]
[Description("Adds the option to set off C4 manually without a timer")]
public class TriggeredExplosiveCharges : RustPlugin {
#region Constants
private const string PERMISSION_PLACE = "triggeredexplosivecharges.place";
private const string PERMISSION_NOTRIGGER = "triggeredexplosivecharges.notrigger";
private const string PERMISSION_CRAFTING = "triggeredexplosivecharges.crafting";
private const int TRIGGER_ITEM_ID = 919780768;
// bone.club
private const ulong TRIGGER_SKIN_TIMED_MODE = 881325138;
private const ulong TRIGGER_SKIN_TRIGGERD_MODE = 881319299;
enum C4_MODE : ulong {
TIMED = TRIGGER_SKIN_TIMED_MODE, TRIGGERED = TRIGGER_SKIN_TRIGGERD_MODE
}
#endregion
#region Classes
private class TriggeredExplosivesManager {
#region Member Variables
public static Dictionary<ulong, TriggeredExplosivesManager> allManagers = new Dictionary<ulong, TriggeredExplosivesManager>();
private static Dictionary<uint, ulong> fakeC4_To_PlayerID = new Dictionary<uint, ulong>();
private BasePlayer player;
private List<TimedExplosive> triggeredExplosives;
private List<DroppedItem> fakeExplosives;
private ulong c4_mode;
private Item trigger;
#endregion
public TriggeredExplosivesManager(BasePlayer player) {
this.player = player;
triggeredExplosives = new List<TimedExplosive>();
fakeExplosives = new List<DroppedItem>();
c4_mode = (ulong)C4_MODE.TIMED;
trigger = null;
List<uint> deployedExplosives;
if (!TriggeredExplosiveCharges.saveData.deployedExplosives.TryGetValue(player.userID, out deployedExplosives)) saveData.deployedExplosives.Add(player.userID, new List<uint>());
else {
for (int i = deployedExplosives.Count - 1; i > -1; i--) {
BaseNetworkable bn = BaseNetworkable.serverEntities.Find(deployedExplosives[i]);
if (bn) {
DroppedItem fakeC4 = bn.GetComponent<DroppedItem>();
if (fakeC4) {
fakeC4_To_PlayerID[fakeC4.net.ID] = player.userID;
fakeC4.allowPickup = configuration.C4_ALLOW_PICKUP;
fakeExplosives.Add(fakeC4);
}
else triggeredExplosives.Add(bn.GetComponent<TimedExplosive>());
}
else deployedExplosives.RemoveAt(i);
}
}
SaveDataToFile();
}
public void DeployExplosive(TimedExplosive te) {
if (c4_mode == (ulong)C4_MODE.TIMED || (configuration.BLOCK_IN_EVENTS && Instance.IsPlayingEvent(player))) return;
te.SetFuse(float.MaxValue);
triggeredExplosives.Add(te);
saveData.deployedExplosives[player.userID].Add(te.net.ID);
SaveDataToFile();
if (configuration.C4_BEEP_DURATION == -1) return;
Instance.timer.Once(configuration.C4_BEEP_DURATION, () => {
if (te != null) RealC4_To_FakeC4(te);
}
);
}
public void Explode(bool forceExplode = false) {
if (!forceExplode && trigger == null) return;
for (int i=fakeExplosives.Count-1; i > -1; i--) FakeC4_To_RealC4(fakeExplosives[i]);
if (configuration.TRIGGER_ONE_TIME_USE && triggeredExplosives.Count > 0) trigger.Remove();
Instance.timer.Once(0.1f, () => {
foreach (TimedExplosive te in triggeredExplosives) te.Explode();
triggeredExplosives.Clear();
saveData.deployedExplosives[player.userID].Clear();
SaveDataToFile();
}
);
}
private void RealC4_To_FakeC4(TimedExplosive realC4) {
DroppedItem worldModel = ItemManager.CreateByItemID(498591726).Drop(realC4.transform.localPosition, Vector3.zero).GetComponent<DroppedItem>();
if (realC4.GetParentEntity()) {
worldModel.SetParent(realC4.GetParentEntity(), StringPool.closest);
worldModel.GetComponent<Rigidbody>().isKinematic = true;
worldModel.GetComponent<Rigidbody>().useGravity = false;
}
worldModel.transform.rotation = realC4.transform.localRotation * Quaternion.Euler(90, 0, 0);
worldModel.allowPickup = configuration.C4_ALLOW_PICKUP;
worldModel.CancelInvoke((Action)Delegate.CreateDelegate(typeof(Action), worldModel, "IdleDestroy"));
worldModel.item.amount = worldModel.item.info.stackable;
BaseEntity.saveList.Remove(worldModel);
fakeExplosives.Add(worldModel);
triggeredExplosives.Remove(realC4);
fakeC4_To_PlayerID[worldModel.net.ID] = player.userID;
saveData.deployedExplosives[player.userID].Remove(realC4.net.ID);
saveData.deployedExplosives[player.userID].Add(worldModel.net.ID);
SaveDataToFile();
realC4.Kill();
}
private void FakeC4_To_RealC4(DroppedItem fakeC4) {
TimedExplosive realC4 = GameManager.server.CreateEntity("assets/prefabs/tools/c4/explosive.timed.deployed.prefab", fakeC4.transform.localPosition, fakeC4.transform.localRotation * Quaternion.Euler(90, 0, 0)).GetComponent<TimedExplosive>();
if (fakeC4.GetParentEntity() != null) {
realC4.GetComponent<Rigidbody>().isKinematic = true;
realC4.GetComponent<Rigidbody>().useGravity = false;
realC4.SetParent(fakeC4.GetParentEntity(), StringPool.closest);
}
else {
if (realC4.transform.forward.y > 0) realC4.transform.rotation *= Quaternion.Euler(180, 0, 0);
}
realC4.Spawn();
realC4.SetFuse(float.MaxValue);
triggeredExplosives.Add(realC4);
fakeExplosives.Remove(fakeC4);
fakeC4_To_PlayerID.Remove(fakeC4.net.ID);
saveData.deployedExplosives[player.userID].Remove(fakeC4.net.ID);
saveData.deployedExplosives[player.userID].Add(realC4.net.ID);
SaveDataToFile();
fakeC4.Kill();
}
public void Toggle_C4_Mode(bool forceToggle = false) {
if (trigger == null && !forceToggle) return;
c4_mode = (c4_mode == (ulong)C4_MODE.TIMED ? (ulong)C4_MODE.TRIGGERED : (ulong)C4_MODE.TIMED);
UpdateTriggerSkin();
}
public void Reset_C4_Mode() {
if (trigger != null && trigger.skin != c4_mode) return;
c4_mode = (ulong)C4_MODE.TIMED;
}
public string GetC4Mode() {
return c4_mode == (ulong)C4_MODE.TIMED ? "Timed" : "Triggered";
}
private void UpdateTriggerSkin() {
if (trigger == null || trigger.skin == c4_mode) return;
Item newItem = ItemManager.CreateByItemID(TRIGGER_ITEM_ID, 1, c4_mode);
newItem.condition = trigger.condition;
int position = trigger.position;
trigger.RemoveFromContainer();
trigger = newItem;
newItem.MoveToContainer(player.inventory.containerBelt, position);
}
public void UpdateActiveItem(Item activeItem) {
if (activeItem != null && (activeItem.skin == TRIGGER_SKIN_TIMED_MODE || activeItem.skin == TRIGGER_SKIN_TRIGGERD_MODE)) {
trigger = activeItem;
UpdateTriggerSkin();
}
else trigger = null;
}
public void CraftTrigger() {
int item_1_amount = 0;
int item_2_amount = 0;
ItemContainer[] containers = new ItemContainer[] {
player.inventory.containerMain, player.inventory.containerBelt
}
;
foreach (ItemContainer container in containers) {
item_1_amount += container.GetAmount(configuration.CRAFTING_ITEM_1_ID, true);
item_2_amount += container.GetAmount(configuration.CRAFTING_ITEM_2_ID, true);
}
if (item_1_amount >= configuration.CRAFTING_ITEM_1_NEEDED && item_2_amount >= configuration.CRAFTING_ITEM_2_NEEDED) {
item_1_amount = configuration.CRAFTING_ITEM_1_NEEDED;
item_2_amount = configuration.CRAFTING_ITEM_2_NEEDED;
foreach (ItemContainer container in containers) {
if (item_1_amount > 0) item_1_amount -= container.Take(null, configuration.CRAFTING_ITEM_1_ID, item_1_amount);
if (item_2_amount > 0) item_2_amount -= container.Take(null, configuration.CRAFTING_ITEM_2_ID, item_2_amount);
}
if (GiveTrigger(1) != 1) {
ChatMessage(player, L_CRAFTING_FAILED_SPACE, new object[] {
Instance.lang.GetMessage(L_INVENTORY_FULL, Instance, player.UserIDString)
}
);
player.inventory.GiveItem(ItemManager.Create(ItemManager.FindItemDefinition(configuration.CRAFTING_ITEM_1_ID), configuration.CRAFTING_ITEM_1_NEEDED));
player.inventory.GiveItem(ItemManager.Create(ItemManager.FindItemDefinition(configuration.CRAFTING_ITEM_2_ID), configuration.CRAFTING_ITEM_2_NEEDED));
return;
}
ChatMessage(player, L_CRAFTING_SUCCESS);
}
else ChatMessage(player, L_CRAFTING_FAILED_RESOURCES, new object[] {
ItemManager.FindItemDefinition(configuration.CRAFTING_ITEM_1_ID).displayName.translated + " (" + configuration.CRAFTING_ITEM_1_NEEDED + "), " + ItemManager.FindItemDefinition(configuration.CRAFTING_ITEM_2_ID).displayName.translated + " (" + configuration.CRAFTING_ITEM_2_NEEDED + ")"
}
);
}
public int GiveTrigger(int amount) {
int given = 0;
while (amount > 0) {
if (!player.inventory.GiveItem(ItemManager.CreateByItemID(TRIGGER_ITEM_ID, 1, c4_mode))) break;
given++;
amount--;
}
return given;
}
public static void Pickup(Item item) {
BaseEntity entity = item.GetWorldEntity();
ulong playerID;
if (fakeC4_To_PlayerID.TryGetValue(entity.net.ID, out playerID)) {
allManagers[playerID].Pickup(entity.GetComponent<DroppedItem>());
item.amount = 1;
}
}
private void Pickup(DroppedItem item) {
fakeExplosives.Remove(item);
saveData.deployedExplosives[player.userID].Remove(item.net.ID);
SaveDataToFile();
}
}
private static class TriggerShop {
struct CreateInfo_BuildingBlock {
public readonly Vector3 position, rotation;
public readonly string prefabName;
public readonly int grade;
public CreateInfo_BuildingBlock(Vector3 position, Vector3 rotation, string prefabName) {
this.position = position;
this.rotation = rotation;
this.prefabName = prefabName;
this.grade = 4;
}
}
struct CreateInfo_WoodenSign {
public readonly Vector3 position, rotation;
public readonly string prefabName, texture;
public readonly bool locked;
public CreateInfo_WoodenSign(Vector3 position, Vector3 rotation) {
this.position = position;
this.rotation = rotation;
this.prefabName = "assets/prefabs/deployable/signs/sign.medium.wood.prefab";
this.texture = "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
// ... [Code preview truncated due to length. Full source in attached file] ...