EasyGear

版本 v1.0.5·更新於 2026-09-25

[AI-generated] Raises item durability (worn equipment too: helmet/chest/legs/cape). Repairs gear when you use a workbench, plus optional auto-repair on entering a station. Client-only.

模組介紹 作者原文

EasyGear

AI 生成聲明:本模組由 AI 智能體(WorkBuddy)在用戶的明確需求與逐項驗收下編寫;

功能設計、真機測試與發佈決定均由用戶主導。

裝備維護。 從 EasyQoL 按功能用途拆分而來,純客戶端模組。

1.0.5(2026-09-25)剔除:原先的第 4 項「跑步時也能切換武器 / 工具」已整體刪除

—— 連同 PlayerCheckRunPatch / ClearActionQueuePatch 兩個補丁類、4 - Equip While Running

配置節一起拿掉。該功能在 1.0.2 / 1.0.3 期間因補丁掛錯方法(掛在 Humanoid.ClearActionQueue

的空實現上)從未生效,1.0.4 修好掛載點後經用戶決定不再保留。

⇒ 現在的 EasyGear 是三項功能:耐久、範圍修理、進站自動修理。來龍去脈見 CHANGELOG.md。

1.0.1(2026-09-17)修復:耐久倍率(武器 / 工具 / 盾)此前完全不生效。

根因是拆分時 ObjectDB.Awake / ZNetScene.Awake 兩個掛載點漏在了 EasyVitals,

導致本模組的耐久改寫函數成了死代碼。詳見 CHANGELOG.md。

1.0.3(2026-09-17)修復:耐久倍率對身上穿的護甲(頭盔 / 胸甲 / 褲子 / 披風)無效。

護甲不走 m_useDurabilityDrain,而是 Player.DamageArmorDurability 裏直接把傷害值

從耐久裏減掉(硬編碼,不讀任何倍率)。現單獨掛了一個補丁按「傷害 ÷ 倍率」重算。詳見 CHANGELOG.md。

功能(3 項)

| # | 功能 | 默認 | 配置節 |

| --- | --- | --- | --- |

| 1 | 武器 / 工具 / 弓 / 盾 耐久 + 穿戴中的護甲(頭盔/胸甲/褲子/披風) | 5 倍(LossReduction) | 1 - Item Durability |

| 2 | 錘子「範圍修理」 | 半徑 30 米 | 2 - Area Repair |

| 3 | 進站自動修理 | 開(含背包,150 ms/件) | 3 - Auto Repair At Station |

角色/玩法數值(重量 / 食物 / 藥水 / 地圖 / Boss 之力 / Rested / 裝備減速)在 EasyVitals。

配置

BepInEx/config/easygear.client.only.cfg

  • 1 - Item Durability → Mode 三選一:
  • LossReduction(默認)= 耐久消耗 ÷ 倍率。裝備明顯更耐用,但物品提示裏的數字下降很慢。
  • MaxDurability = 耐久上限 × 倍率。提示裏一眼可見;已有裝備需要先用錘子修一次纔會滿。
  • Both = 兩者都做(壽命約 ×25,慎用)。
  • 2 - Area Repair → Verbose 默認 true(沿用原 EasyQoL 的實機配置):

每次範圍修理在日誌裏記一行修好了幾個部件。

  • 3 - Auto Repair At Station → IntervalMilliseconds 是逐件修理的間隔(默認 150);

裝備多的時候能看清耐久條一根根回滿。填 0 = 一瞬間全滿。

舊 cfg 裏若還留着 [4 - Equip While Running] 那一節,可以直接無視 ——

該功能已在 1.0.5 剔除,BepInEx 不會再讀它(留着不報錯;想清爽就自己刪掉那幾行)。

⚠️ 改完必須重啓遊戲(BepInEx 只在插件 Awake 讀一次配置)。

實現要點

  • 耐久 —— 兩條代碼路徑,必須分別處理:
  • 武器 / 工具 / 弓 / 盾 / 放置:ObjectDB prefab 數據改寫

(ObjectDB.Awake + ZNetScene.Awake 兜底),把 SharedData.m_useDurabilityDrain 原值 ÷ 倍率、冪等。

  • 穿戴中的護甲(頭盔 / 胸甲 / 褲子 / 披風):不走上面那個字段。

Player.DamageArmorDurability(HitData) 裏是把傷害值直接從耐久減掉(硬編碼),

所以改共享數據對它無效。本模組另掛一個補丁:Prefix 記下扣前耐久、

Postfix 按 Max(0, 扣前值 − 傷害/倍率) 重算被扣的那件。

⚠️ 必須從 HitData 重新取原始傷害 —— 原版的 Mathf.Max(0, …) 會先把負值 clamp 到 0、

真實傷害量就丟了;拿"已扣量"去除以倍率會導致"傷害大於剩餘耐久時少扣",

極端情況下護甲會趨近於永不損壞。

  • 範圍修理:Player.Repair 的 postfix —— 以鼠標指向的部件爲中心,把半徑內所有 WearNTear 也修一遍。

帶防重入標記;Repair() 自身會跳過已滿耐久/冷卻中的部件,所以不會重複計。

  • 進站自動修理:InventoryGui.Show 的 prefix 記下「調用前界面是否已可見」,

只有【不可見 → 可見】且 activeGroup == 3(製造頁)纔算「剛打開」;逐件修理走協程帶節奏。

身上穿戴的那批走遊戲原版修理函數,所以漲熟練度、修理特效、「已修復 xxx」提示

與手動點修理按鈕完全一致;原版修理本來就免費,所以不消耗材料。

聯機

純客戶端。 主機、其他玩家都不需要裝。

不聲明 NetworkCompatibilityAttribute,不引用 Jotunn,不內嵌 ServerSync / CCS。

安裝與使用 安裝:BepInEx 外掛

  1. 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
  2. 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
  3. 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
  4. 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。

帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。 多人連線時,主機與所有用戶端需要安裝一致的模組。

前置依賴

下面這些內容需要先安裝,否則該模組不會生效:

denikson-BepInExPack_Valheim

檔案與校驗

檔案名稱
EasyGear-1.0.5.zip
檔案大小
20.2 KiB