banner
Рейтинг
Голоса0

Ядро ReservedItemSlotCore

Категория - Моды для Lethal Company
0
Версия мода:1
Версия игры:2.0.33
Mод успешно проверен на отсутствие вирусов
1449.29K12.9K

Репорт мод

  • image
modalImage

Об этом моде

ReservedItemSlotCore.

Основной мод для всех модов ReservedItemSlot.

Этот мод необходим для работы таких модов ReservedItemSlot, как ReservedFlashlightSlot и ReservedWalkieSlot.

Эти моды предоставляют пустой слот инвентаря, зарезервированный для каждого предмета. Эти слоты отображаются в правой части экрана и располагаются вертикально.


Вы не можете вручную прокручивать экран, чтобы переместиться в эти слоты. Вместо этого вы можете переключиться на эти предметы, удерживая клавишу Alt (клавиша быстрого доступа по умолчанию) и проводя пальцем вверх и вниз.

Таким образом, вы можете перемещаться к этим элементам и обратно или выполнять другие действия, например заряжать или сохранять их.


Между клиентами, использующими этот режим, поиск зарезервированных элементов и переключение слотов между основной панелью быстрого доступа и зарезервированной панелью быстрого доступа должны быть синхронизированы.

В соответствующих случаях эти режимы имеют специальные привязки клавиш для активации элементов, даже если они не выбраны.


Все клиенты, работающие в этом режиме ядра, будут синхронизироваться с хостом и иметь тот же зарезервированный слот элементов, что и хост, независимо от того, какой режим зарезервированного слота элементов установлен.

Использование режима, который не использует зарезервированный слот элементов хоста, не вызовет никаких проблем, но не позволит воспользоваться дополнительными возможностями режима, такими как горячие клавиши, специфичные для зарезервированных элементов.

Это может быть изменено или скорректировано в будущем, но в настоящее время предполагается сохранить одинаковый размер инвентаря для всех, чтобы облегчить синхронизацию.

Это также означает, что если я добавлю в конфигурацию возможность создавать пользовательские зарезервированные слоты предметов или создам режим ReservedCustomItemSlot, я смогу отправлять пользовательские зарезервированные слоты предметов с хоста на другие клиенты. Полезно для.


~Использование этого мода снова разрешено, когда у хоста нет мода, но следует ожидать багов и проблем с синхронизацией. Используйте с осторожностью.

Если у хоста нет этого мода, то по разным причинам этот мод будет отключен на клиентах, не являющихся хостом.

Упрямцы могут заставить конфигурацию разрешить его. Внимание.



Покупка зарезервированных слотов (новое в версии 2.0.0)

Зарезервированные слоты предметов можно купить в терминале. В настоящее время покупка зарезервированного слота предметов разблокирует этот слот для всех игроков. В настоящее время нет возможности разблокировать его для каждого отдельного игрока.

Введите "reserved" в терминале, и вы получите подсказку о том, как приобрести зарезервированный слот.

Моды, поддерживающие зарезервированные слоты, могут устанавливать цену в настройках. Все мои слоты для предзаказа имеют такую конфигурацию.

Купленные слоты предметов сохраняются в сохранении игры. Когда вы отмените сохранение и перезагрузитесь, все ранее разблокированные слоты предметов будут перезагружены. Разблокированные слоты сбрасываются, когда вы начинаете новую игру.

Покупка слотов предметов может быть отключена в настройках.


Настраиваемый.

Каждый режим Reserved Item Slot должен поддерживать следующие конфигурации.

Добавлена поддержка разрешения режимам Dedicated Item Slot устанавливать цены на слоты предметов в конфигурации.

Позволяет режиму Dedicated Item Slot устанавливать приоритет слотов элементов в конфигурации.

Чем выше приоритет, тем ниже очередь слотов предметов в правой части экрана.

Если приоритет установлен в отрицательное значение, слот товара будет отображаться в правой части экрана, если это не отключено в конфигурации.

Теперь предметы можно добавлять в зарезервированные слоты в конфигурации.

Добавлена поддержка удаления существующих элементов из зарезервированного слота в конфигурации.


Поддержка InputUtils.

Горячими клавишами, связанными с этим модом, можно управлять из внутриигрового меню привязок клавиш.

InputUtils не является зависимостью, но рекомендуется.


Функции API (новое в версии 2.0.0).

Функциональность API была добавлена, чтобы разработчики могли легко создавать свои собственные моды Reserved Item Slot и добавлять предметы в существующие Reserved Item Slots. При создании ReservedItemData для конкретного предмета разработчики могут опционально указать целевую кость для обшивки предмета для игрока (и замаскированных врагов) и задать смещение позиции/поворота.


Прежде всего, необходимо добавить последнюю версию ReservedItemSlotCore.dll в ссылку на проект VS.

Внимание:

Добавление предметов, не существующих в ReservedItemSlotData (случайно или из незагруженных модов), ничего не нарушит.

Добавление предмета, созданного из незагруженного мода, в существующий ReservedItemSlotData не приведет к поломке.


Добавление предметов из MOD в существующий ReservedItemSlot

Если ReservedItemSlotCore включен, его можно использовать для добавления предметов из вашего собственного мода в существующий ReservedItemSlot, созданный другим модом.


Создайте класс, подобный этому, в отдельном файле.


ReservedItemSlotCore.Data;


public static class ReservedItemSlotsCompat.

{

  public static void AddItemsToReservedItemSlots().

  {

    // Название предмета, который будет отображаться в игре.

    ReservedItemData myReservedItemData = new ReservedItemData("ItemDisplayName");

     

    // Не имеет значения, если режим, создавший этот слот для предмета, не включен на клиенте. Ничего не будет нарушено.

    ReservedItemSlotData.TryAddItemDataToReservedItemSlot(myReservedItemData, "nameOfItemSlot");

  }

}


} или сделать предмет видимым, пока он находится в рукаве:



ReservedItemSlotCore.Data;


public static class ReservedItemSlotsCompat.

{

  public static void AddItemsToReservedItemSlots().

  {

    // Аргументы: ItemDisplayName, ParentBone(enum), PositionOffset, RotationOffset

    ReservedItemData myReservedItemData = new ReservedItemData("ItemDisplayName", PlayerBone.Spine3, new Vector3(0.2f, 0.25f, 0), new Vector3(90, 0, 0))

   

    // Режим, создавший этот слот для элемента, не обязательно должен быть включен на клиенте. Ничего не нарушается.

    ReservedItemSlotData.TryAddItemDataToReservedItemSlot(myReservedItemData, "nameOfItemSlot");

  }  

}


Затем добавьте следующее в метод Wake (или Initialise) класса Plugin (желательно после привязки конфигурации).

Если ваш мод не привязан к ReservedItemSlotCore и только опционально добавляет предметы, если присутствуют зарезервированные слоты предметов, очень важно проверить, валиден ли этот мод.


if (BepInEx.Bootstrap.Chainloader.PluginInfos.ContainsKey("FlipMods.ReservedItemSlotCore"))

  ReservedItemSlotsCompat.AddItemsToReservedItemSlots(); // это и есть вызов функции.


Наконец, добавьте этот заголовок SoftDependency над определением класса Plugin.

Если ваш мод зависит от ReservedItemSlotCore, вы можете изменить заголовок BepInDependency.DependencyFlags.SoftDependency на BepInDependency. Можно изменить на HardDependency.


[BepInDependency("FlipMods.ReservedItemSlotCore", "BepInDependency.DependencyFlags.SoftDependency")] // Добавляем следующие строки.

[BepInPlugin("EXAMPLE_MOD_GUID", "EXAMPLE_MOD_NAME", "1.0.0")] // У вас уже должна быть эта строка над определением класса плагина.

Public class Plugin : BaseUnityPlugin.

{

  .

}

Создание собственного слота ReservedItemSlot

Это пример создания собственного ReservedItemSlotData и добавления предметов MOD (или существующих в игре предметов) в слот для предметов.

Напишите этот код в методе Awake (или Start) класса Plugin. Нет необходимости создавать отдельный файл или класс при добавлении этого кода.


ReservedItemSlotCore.Data;


// Убедитесь, что этот заголовок присутствует в верхней части класса Plugin.

[BepInDependency("FlipMods.ReservedItemSlotCore", BepInDependency.DependencyFlags.HardDependency)]

[BepInPlugin("EXAMPLE_MOD_GUID", "EXAMPLE_MOD_NAME", "1.0.0")] // У вас уже должна быть эта строка над определением класса Plugin.

Public class Plugin : BaseUnityPlugin.

{

  private void Awake().

  {

    // Существующий код...


    // Это сохраняет ваши ReservedItemSlotData и будет добавлено в игру, если запущен режим хоста.

    // Аргументы Аргументы: ItemSlotName (формат не очень важен), ItemSlotPriority, ItemSlotPrice

    ReservedItemSlotData myReservedItemSlot = ReservedItemSlotData.CreateReservedItemSlotData("my_item_slot_name", 20, 100);


    // Создаем ReservedItemData для элемента.

    // Можно добавить дополнительные аргументы, чтобы этот предмет можно было показывать игроку в рукаве (см. предыдущий пример)

    ReservedItemData myReservedItemData = new ReservedItemData("ItemDisplayName");


    // Добавьте ReservedItemData в ReservedItemSlotData, и готово!

    myReservedItemSlot.AddItemToReservedItemSlot(myReservedItemData);

  }

}


Другие функции API

Ниже приведен пример получения и управления зарезервированными предметами игрока.


PlayerControllerB localPlayerController = StartOfRound.Instance.localPlayerController;

for (int i = 0; i < SessionManager.numReservedItemSlotsUnlocked; i++)

{

  ReservedItemSlotData itemSlotData = SessionManager.GetUnlockedReservedItemSlot(i);

  if (itemSlotData ! = null)

  {

    // Получаем индекс этого слота в инвентаре игрока.

    int indexInPlayerInventory = itemSlotData.GetIndexInventory(localPlayerController); // Может быть передан любой контроллер игрока.



    // Получите объект, который в данный момент находится в этом слоте у данного игрока.

    GrabbableObject heldObjectInSlot = itemSlotData.GetHeldObjectInSlot(localPlayerController); 



    // Получение рамки слота предмета (компонент отображения HUD) для этого слота предмета. Действует только для локального игрока.

    Image itemSlotFrameHUD = itemSlotData.GetItemSlotFrameHUD();



    // Чтобы проверить, принимает ли зарезервированный слот для предметов определенный предмет (название предмета, как он выглядит в игре).

    // Вы также можете передать ссылку на GrabbableObject.

    if (itemSlotData.ContainsItem("Flashlight"))

      Plugin.Log("Этот слот содержит фонарик");

  }

}


Если вы создаете свой собственный ReservedItemSlotData, также добавьте следующую строку в список зависимостей в файле manifest.json.

"FlipMods-ReservedItemSlotCore-2.0.7".



Если вы хотите увидеть больше примеров, не стесняйтесь посмотреть на доступные моды ReservedItemSlot на моем github!

Если вы считаете, что я что-то упустил или столкнулся с какими-то проблемами, пожалуйста, дайте мне знать! Я довольно активен в дискорде моддинга Lethal Company, так что приходите и найдите меня!

Вы также можете оставлять сообщения о проблемах на github мода!


Моды ReservedItemSlot

ReservedFlashlightSlot

ReservedWalkieSlot

Зарезервированный слот для оружия

Зарезервированный вспомогательный слот

Зарезервированный слот для спрея

Другие моды на зарезервированные слоты предметов можно найти в магазине Thunderstore!


Совместимость модов

HotbarPlus совместим!

LethalThings Utility Belt совместим (должен быть совместим) (надеемся, что все еще цел).

Этот мод может быть несовместим с Advanced Company. Используйте на свой страх и риск!

Работа других модов, добавляющих слоты хотбара, не гарантируется.

Другие моды, которые перемещают слоты хотбара (HUD), не гарантируют работу с этими модами, но технически могут работать.

Похожие Моды/Аддоны

Версия игры *

2.0.33 (FlipMods-ReservedItemSlotCore-2.0.33.zip)