Valheim
You are viewing a potentially older version of this package. View Latest Version
Install with App

Details

Date Uploaded
3 weeks ago
Downloads
374
Size
136KB
ADDatHost Valheim hosting
30% off

SharedRecipeFinderReborn

Замена легаси-мода SharedRecipeFinder (SoulEmper0r, 28.03.2024) под актуальную Valheim.

Что делает

При открытии сундука/контейнера показывает через MessageHud материалы и еду, которых игрок ещё ни разу не получал (Player.IsKnownMaterial == false):

  • на каждый неизвестный предмет — unlock-уведомление с иконкой и названием ($msg_newitem);
  • одно итоговое сообщение TopLeft, если неизвестные кандидаты нашлись;
  • при Debug.Logging=true — строка в BepInEx-лог: имя контейнера и число неизвестных.

Работает на клиенте, ничего не разблокирует, серверу ничего не шлёт. Повторяющиеся стаки схлопываются в одно уведомление (иконка берётся у первого стака).

Почему замена, а не «починить DLL»

Старой DLL 6 КБ, исходников нет; декомпилят показал вызов старой сигнатуры Character.Message(MessageType, string, int, Sprite) — в установленной игре она всё ещё существует (проверено декомпиляцией Player), но бинарник собран против другого API-среза, поэтому продолжать с него нельзя. Логика крошечная — переписана начисто.

Отличия от оригинала: работает на открытии контейнера (а не инвентаря), добавлены названия предметов, дедупликация, конфиг General.Enabled и Debug.Logging, BepInIncompatibility против старого GUID vnoisy.sharedrecipefinder.plugin.

Сборка

dotnet build E:\Storage\Personal\Pet-Projects\SharedRecipeFinderReborn\SharedRecipeFinderReborn.csproj -c Release
# DLL: bin\Release\SharedRecipeFinderReborn.dll

Тесты (вне игры; Harmony-тест вне игры помечается [skip] — десктопный рантайм не может читать тела Unity-методов, то же ограничение у TerraHoe.WireTest):

dotnet build E:\Storage\Personal\Pet-Projects\SharedRecipeFinderReborn\tests\SharedRecipeFinderReborn.Tests\SharedRecipeFinderReborn.Tests.csproj -c Release
E:\Storage\Personal\Pet-Projects\SharedRecipeFinderReborn\tests\SharedRecipeFinderReborn.Tests\bin\Release\net462\SharedRecipeFinderReborn.Tests.exe

Установка

Скопировать DLL в профиль r2modman: profiles\2.0\BepInEx\plugins\SoulEmper0r-SharedRecipeFinderReborn\ (или импортировать как локальный мод в r2modman).

Известные ограничения

  • Внутриигровое поведение (появление уведомлений при открытии сундука) автоматическими тестами не проверяется — вне игры Unity-типы не загружаются. Проверять в игре.
  • Дедупликация в пределах одного открытия сундука; между открытиями напоминание повторяется, пока предмет не получен — так задумано.
  • Патчится InventoryGui.Show(Container, int); если IronGate сменит сигнатуру, тест patch target resolves on installed game это поймает.

Дисклеймер

На серверах с усиленным анти-читом/кастомными правилами использование клиентских модов — на свой страх и риск; мод только читает инвентарь контейнера и пишет в HUD.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.