EasyGear
[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 外掛
- 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
- 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
- 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
- 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。
帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。 多人連線時,主機與所有用戶端需要安裝一致的模組。
下面這些內容需要先安裝,否則該模組不會生效: