C#:
using System.Collections.Generic;
using System.Linq;
using ProtoBuf;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("MLRSBags", "LAGZYA", "1.0.0")]
public class MLRSBags : RustPlugin
{
private Dictionary<ulong, List<MLRS>> _newMlrs = new Dictionary<ulong, List<MLRS>>();
void Init()
{
permission.RegisterPermission("mlrsbags.admin", this);
}
[ChatCommand("sm")]
private void CreateMLRS(BasePlayer player)
{
if(!permission.UserHasPermission(player.UserIDString, "mlrsbags.admin")) return;
MLRS newMlrs = GameManager.server.CreateEntity("assets/content/vehicles/mlrs/mlrs.entity.prefab", player.transform.position) as MLRS;
newMlrs.Spawn();
newMlrs.AdminFixUp();
newMlrs.VehicleFixedUpdate();
List<MLRS> mlrss;
if (player.GetComponentInParent<CargoShip>() != null)
{
newMlrs.SetParent( player.GetComponentInParent<CargoShip>(), true, true);
}
if(!_newMlrs.TryGetValue(player.userID, out mlrss))
{
_newMlrs.Add(player.userID,new List<MLRS>()
{
newMlrs
});
return;
}
else
{
mlrss.Add(newMlrs);
}
}
void OnMapMarkerAdded(BasePlayer player, MapNote note)
{
if(!permission.UserHasPermission(player.UserIDString, "mlrsbags.admin")) return;
if(!_newMlrs.ContainsKey(player.userID)) return;
foreach (var newMlr in _newMlrs[player.userID])
{
newMlr.SetUserTargetHitPos(note.worldPosition);
}
}
private Vector3 positonss = new Vector3();
[ChatCommand("st")]
private void SetTarger(BasePlayer player, string command, string[] args)
{
if(!permission.UserHasPermission(player.UserIDString, "mlrsbags.admin")) return;
if(!_newMlrs.ContainsKey(player.userID)) return;
foreach (var newMlr in _newMlrs[player.userID])
{
newMlr.AdminFixUp();
newMlr.VehicleFixedUpdate();
newMlr.GetRocketContainer().inventory.itemList.ForEach(p => p.amount = 100);
newMlr.RocketAmmoCount = 6;
newMlr.AdminFixUp();
newMlr.rocketOwnerRef.Set(player);
timer.Once(5f, () =>
{
newMlr.SetFlag(BaseEntity.Flags.Reserved8, b: true);
newMlr.nextRocketIndex = 6;
newMlr.radiusModIndex = 0;
newMlr.InvokeRepeating(newMlr.FireNextRocket, 0f, 0.3f);
});
newMlr.AdminFixUp();
}
}
void Unload()
{
var removeMlrs = _newMlrs.ToList();
foreach (var removeMlr in removeMlrs)
{
var test = removeMlr.Value;
foreach (var mlrse in test)
{
mlrse.Kill();
}
_newMlrs.Remove(removeMlr.Key);
}
}
}
}