Друзья я начинающий плагописец :)) прошу строго не судить, очень нужна ваша помощь
в плагине необходимо создать невидимый контейнер, открыть его вместе с инвентарём игрока,
переложить в него лут (это камень дерево и фрагменты металла) и при закрытии записать в дата файл,
при повторном открытии взять данные из дата файла и положить опять в контейнер (не инвентарь)
И вроде задача простая но я не понимаю куда копать и что делать уже неделю бьюсь пересмотрел чужие плагины
прочитал кучу манов, как создавать объект понял но дальше полный тупик...
Заранее спасибо за помощь..
в плагине необходимо создать невидимый контейнер, открыть его вместе с инвентарём игрока,
переложить в него лут (это камень дерево и фрагменты металла) и при закрытии записать в дата файл,
при повторном открытии взять данные из дата файла и положить опять в контейнер (не инвентарь)
И вроде задача простая но я не понимаю куда копать и что делать уже неделю бьюсь пересмотрел чужие плагины
прочитал кучу манов, как создавать объект понял но дальше полный тупик...
C#:
public class test : RustPlugin
{
//Это кнопка
string Gui_ButBack = "[{\"name\":\"Bootionhorse\",\"parent\":\"Overlay\",\"components\":[{\"type\":\"UnityEngine.UI.Image\",\"material\":\"\",\"color\":\"1 0 0 0.3492877\"},{\"type\":\"RectTransform\",\"anchormin\":\"0.65 0.02333333\",\"anchormax\":\"0.835625 0.1477778\",\"offsetmin\":\"0 0\",\"offsetmax\":\"0 0\"}]},{\"name\":\"BtnBack\",\"parent\":\"Bootionhorse\",\"components\":[{\"type\":\"UnityEngine.UI.Button\",\"command\":\"Closebox\",\"color\":\"0 0 0 0.8352941\"},{\"type\":\"RectTransform\",\"anchormin\":\"0.02356893 0.02999994\",\"anchormax\":\"0.9831649 0.9642856\",\"offsetmin\":\"0 0\",\"offsetmax\":\"0 0\"}]},{\"name\":\"txtBootBack\",\"parent\":\"BtnBack\",\"components\":[{\"type\":\"UnityEngine.UI.Text\",\"text\":\"NEXT\",\"fontSize\":24,\"align\":\"MiddleCenter\"},{\"type\":\"RectTransform\",\"anchormin\":\"0.03521138 0.2199999\",\"anchormax\":\"0.9788731 0.8999999\",\"offsetmin\":\"0 0\",\"offsetmax\":\"0 0\"}]}]";
//Создать и открыть ящик по команде
[ChatCommand("opbox")]//opbox
private void openbox(BasePlayer player)
{
var pos = new Vector3(player.transform.position.x, player.transform.position.y - 1, player.transform.position.z);
string box = "assets/prefabs/deployable/woodenbox/woodbox_deployed.prefab";
var view = GameManager.server.CreateEntity(box, pos) as StorageContainer;
view.GetComponent<GroundWatch>().enabled = true;
//Просто игрался с параметрами
if (!view) return;
view.limitNetworking = true;
view.transform.position = pos;
view.OwnerID = player.userID;
view.name = "mybox";
view.maxStackSize = 4;
view.inventorySlots = 30;
view.enableSaving = true;
view.buildingID = 123456789;
view.Spawn();
//view.inventory.entityOwner = view;
CuiHelper.AddUi(player, Gui_ButBack);
timer.In(0.1f, delegate ()
{
view.PlayerOpenLoot(player);
});
//По нажатию кнопки закрыть инвентарь и записать положенный лут в дата файл
//А именно фрагменты метала, дерево, камень = название и количесво
}
private BaseEntity FindBox(string boxNameOrId)
{
// Не работает уже не знаю как ((
BaseEntity box = BaseNetworkable.serverEntities.Find(e => e.name.Contains(boxNameOrId));
if (box != null)
{
return box;
}
uint boxId;
if (uint.TryParse(boxNameOrId, out boxId))
{
box = BaseNetworkable.serverEntities.Find(e => e.net.ID == boxId);
}
return box;
}