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

Details

Date Uploaded
Downloads
81
Size
346KB
ADDatHost Valheim hosting
30% off

Roguenarok 0.20.0 — доработки еды, рун, карты и интерфейса игроков

Статус: подготовлено, не установлено. Сервер остаётся на 0.19.0; игровые и мультиплеерные тесты не проводились. Для установки потребуются одинаковые 0.20.0 на сервере и клиентах. Сохраняется прежнее правило однократного обнуления персонажей при новой версии; мир не сбрасывается.

Изменения

  • Удалён SaveCoinProfile из ReceiveFoodReply. Завершение еды теперь меняет инвентарь и квитанцию в памяти и применяет эффект без синхронной записи профиля. Обычные сохранения Valheim, сохранения при выходе и остальные точки сохранения Roguenarok не отключены. Живой канал закрывается до эффекта, повторные/задержавшиеся ответы не повторяют списание или лечение. Существующие проверки времени, соединения, урона, смерти и контекста рейда сохранены.
  • Только стандартный шанс белой руны в рейдовом сундуке изменён с 20% на 40%. Синие 10%, легендарные 1%, общий шанс51%; один взаимоисключающий бросок, общий предмет для группы. Звёздные враги и боссы используют прежние таблицы/множители/учёт источников.
  • Малина:15HP/1,2сек; гриб:−35% расхода/12сек/1,5сек; мёд:+30стамины,5сек без расхода и с регенерацией во время действий/1,5сек. Три вида мяса сохраняют запрошенное мгновенное лечение и лечение за ровно3сек. Подсказки содержат точные новые описания и значения текущей конфигурации.
  • Мёд использует штатную формулу регенерации Player.UpdateStats(float), включая модификаторы SEMan/RPG и мировой коэффициент. На время эффекта заменяет только ограничитель действий и обнуляет ожидание регенерации; скорость базовой регенерации не меняется. После окончания эффект больше не вмешивается. Внедрение проверяет структуру IL и откажется патчить изменившийся участок игры вместо записи в неизвестную локальную переменную.
  • Обнаружение кузниц и перековок: индивидуально в радиусе10м или при взаимодействии. Регистрация через native CreateObject/Piece.Awake, проверка кеша каждые0,5сек. Новые объекты получают штатные значки молота/огня по именам спрайтов Minimap. Метки не сохраняются в общем наборе пользовательских pins; координаты/идентификаторы сохраняются в собственном поле профиля, разделённом по миру и идентификатору/поколению рейда. Переподключение восстанавливает открытия при обычном сохранении профиля; следующий рейд получает пустой журнал. Хаб, старое поколение и факелы исключены. Пользовательские отметки не очищаются.
  • Имена/HP других игроков: используется существующий EnemyHud с CanvasGroup для плавного появления/скрытия. По умолчанию требуется расстояние≤5м, прямое наведение лучом камеры и отсутствие препятствий от персонажа и камеры. Собственный HUD скрыт. Приседание учитывается отдельно: нативное TestShow иначе удаляло бы HUD раньше нашей проверки. Фактическое HP и сетевые данные не меняются; NPC/враги не затронуты.

Настройки

Файл BepInEx/config/local.roguenarok.foundation.cfg:

  • [Exploration] POIDiscoveryRadius=10, POIMarkersEnabled=true, POIMarkersShared=false. Раскрытие всегда личное: Shared принудительно остаётся false.
  • [Interface] PlayerInfoVisibilityDistance=5, PlayerInfoRequiresAim=true, PlayerInfoRequiresLineOfSight=true.
  • [Runes.Loot] ChestWhite=0.4; остальные вероятности не менялись.
  • Существующие [Food.<Prefab>]: ConsumeSeconds, InstantHealth, HealthOverThreeSeconds, EffectSeconds, StaminaCostReduction; у Honey добавлен InstantStamina=30. Сервер передаёт параметры еды через существующий канал.
  • Однократный BalanceRevision=2 обновляет старые стандартные0.19 значения еды/белых рун. Отличающиеся от старых стандартных пользовательские значения сохраняются. Настройки интерфейса и персонального обнаружения локальны каждому клиенту; таблица дропа и еда управляются сервером.

Изменённые файлы

Пути относительно Roguenarok/:

Рабочий код, изменённые:

  • Foundation/FoodRules.cs
  • Foundation/FoodNetwork.cs
  • Foundation/FoodEffects.cs
  • Foundation/FoodTuning.cs
  • Foundation/FoodTooltips.cs
  • Foundation/Runes/RuneTuning.cs
  • Foundation/Runes/RuneRegistry.cs
  • Foundation/RpgRules.cs
  • Foundation/Plugin.cs
  • Foundation/RuneRecycler.cs
  • Foundation/Roguenarok.Foundation.csproj — ссылка на уже установленный UnityEngine.JSONSerializeModule; дополнительный мод не нужен.

Рабочий код, новые:

  • Foundation/FoodHoneyRegeneration.cs
  • Foundation/ExplorationTuning.cs
  • Foundation/StationDiscovery.cs
  • Foundation/PersonalStations.cs
  • Foundation/ContextPlayerInfo.cs

Проверки и упаковка:

  • Foundation.Tests/FoodTests.cs
  • Foundation.Tests/Program.cs
  • Foundation.Tests/Foundation.Tests.csproj
  • Foundation.Tests/FinalChangesTests.cs
  • verify_rune_api.ps1
  • verify_0200.ps1
  • inspect_0200.ps1, api-0200.txt, inspect_map_0200.ps1 — исследование фактического API установленной игры.
  • package_0200.py
  • AGENTS.md
  • Foundation/NOTES-0.20.0.md, Foundation/final-0.20.0-validation.json, Foundation/dist-0.20.0/, Foundation/Roguenarok_Extraction_Modpack-0.20.0.zip.

Выполненные проверки

  • Release:0ошибок,0предупреждений.
  • 278135 модельных/ресурсных проверок, включая обновлённые границы завершения еды, отмену/повторы, точное суммарное лечение, распределение51% рун, сохранность таблиц звёздных мобов/боссов, личный журнал POI, отсутствие дублей, перенос координат, сериализуемость данных и ограничения размера.
  • 116проверок Harmony/reflection по установленной assembly_valheim и16 дополнительных IL-инвариантов: правильная перегрузка UpdateStats, корректное место ограничения регенерации, сохранение нативной формулы и модификаторов, отсутствие вызовов Save/Flush в обработке еды, одно списание и одно применение эффекта, закрытие канала до эффекта, кешированный поиск POI, отдельное удаление своих pins, наличие полей EnemyHud и Minimap.GetSprite.
  • Архив: manifest.json и icon.png в корне, версия0.20.0, DLL соответствует сборке, ZIP проверен, SHA256 записаны в validation.json.

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

Ручные тесты Valheim

  1. Установить одну версию всем участникам и серверу. Проверить вход, хаб, выдачу20стартовых монет и старт рейда на1–4игроков.
  2. Для каждой еды сверить tooltip/время анимации/эффект/один исчезнувший предмет. Нанести урон перед концом употребления: предмет остаётся, эффект не применяется. Проверить повторный быстрый ввод, перемещение предмета, выход/смерть/телепорт во время канала.
  3. Проверить мёд на неполной стамине: мгновенные+30 с ограничением максимумом;5сек бега, ударов и перекатов без расхода с продолжающейся регенерацией. После окончания расходы/регенерация обычные. Проверить замещение грибом и обратно, обновление без суммирования, руны/RPG на стамину.
  4. Проверить мясо на раненом персонаже: нужное мгновенное лечение, ровно остаток за3сек, ограничение максимумом, урон не отменяет уже начавшееся лечение. Удостовериться, что еда не запускает визуальное сохранение и фриз; сравнить кадровое время с0.19.0.
  5. roguerune loot chest у администратора: статистика около40/10/1/49. Проверить физический общий лут при одновременном открытии двумя игроками, отсутствие повторной руны после переподключения; проверить босса и обе звёздные таблицы на разных волнах.
  6. Два игрока в разных местах: подход к кузнице/перековке на≤10м открывает pin только подошедшему. Повтор/взаимодействие не дублируют. Проверить малую и большую карту, молот/огонь, положение, выход и повторный вход в текущий рейд, эвакуацию и новый рейд, сохранность собственных пользовательских pins, отсутствие меток станков хаба/факелов.
  7. У игроков:5м/5,1м, прямое наведение/отведение, стены/деревья/камни, приседание, разные расстояния камеры. Проверить плавность, отсутствие собственного HUD, верное текущее HP после урона/лечения, смерть/наблюдение/переподключение, обычные полосы NPC.
  8. Проверить неизменность торговли, ремонта/заточки, перековки, рун и XP, генерации, волн, смерти и лодочной эвакуации. Проверить нормальное сохранение инвентаря/обнаружений при выходе и загрузке профиля.

Ограничения и открытые вопросы

  • Игровые/сетевые тесты и измерение устранённого фриза ещё не выполнены. Удаление непосредственного синхронного сохранения подтверждено по коду и IL, но отсутствие всех возможных источников задержек не заявляется.
  • После аварийного завершения игры изменения с последнего обычного сохранения профиля могут быть потеряны, как у нативного инвентаря. Принудительная запись после каждой еды намеренно удалена. Защита от редактирования клиентских профилей/модифицированных клиентов не добавлялась.
  • Нормальное переподключение использует сохранение профиля Valheim. Авария до него может потерять и последние открытия POI. При штатном выходе они должны восстановиться; это нужно проверить в игре.
  • Проверка DTO использует System.Text.Json в тестовом проекте, рабочая версия — штатный Unity JsonUtility. Его фактический запуск и реальные map pins пока не проверены.
  • Обзор/плавность/иконки/слои столкновений и совместимость сторонних модов камеры требуют визуального теста. Стандартная камера учитывается через Utils.GetMainCamera и луч из центра viewport. Физические коллайдеры определяют прямую видимость.
  • Существующие сложные блюда и скорость базовой регенерации не менялись. Новых эликсиров, глобальных систем бафов или общей карты не добавлено.
  • Установка и перезапуск сервера не выполнялись.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.