C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using Newtonsoft.Json;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("Airdrop Without Parachute", "Enforcer", "1.0.0")]
[Description("Removes the parachute on Airdrops")]
public class AirdropWithoutParachute : RustPlugin
{
#region Init
private void Init()
{
LoadConfig();
}
private void Unload()
{
config = null;
}
#endregion
#region Hooks
private void OnEntitySpawned(BaseEntity entity)
{
if (entity == null)
return;
if (entity is SupplyDrop)
{
SupplyDrop supplyDrop = entity as SupplyDrop;
var drop = supplyDrop.GetComponent<Rigidbody>();
supplyDrop.RemoveParachute();
drop.drag = config.airdropDrag;
}
}
#endregion
#region Configuration
ConfigData config = new ConfigData();
private class ConfigData
{
[JsonProperty(PropertyName = "Airdrop drag")]
public float airdropDrag { get; set; }
}
protected override void LoadConfig()
{
base.LoadConfig();
try
{
config = Config.ReadObject<ConfigData>();
if (config == null)
{
LoadDefaultConfig();
}
}
catch
{
for (var i = 0; i < 3; i++) PrintError($"{Name}.json is corrupted! Recreating a new configuration");
LoadDefaultConfig();
return;
}
SaveConfig();
}
protected override void LoadDefaultConfig()
{
config = new ConfigData()
{
airdropDrag = 5f,
};
}
protected override void SaveConfig() => Config.WriteObject(config);
#endregion
}
}