制作存储链接

创作者: Eulogy
已更新:2026-09-13 11:24:04
113KB

关于此 MOD

仅限BepInEx的英灵神殿1.0版制作、升级和使用锤子建造时,可从与所需制作站相连的附近玩家可访问储物中取材。

CraftingStorageLink 1.5.1 — 仅限 BepInEx 版本

此修订版完全移除了霜巨人的依赖。

依赖项

你唯一需要安装的框架就是 适用于 Valheim 的 BepInExPack 5.4.2350+.

合成存储链接使用HarmonyLib进行运行时补丁,但 你不单独安装Harmony. 普通的英灵神殿 BepInEx 整合包已经包含 BepInEx/核心/0Harmony.dll,并且项目引用了那个捆绑副本。

这里没有任何约顿依赖,也不需要任何约顿DLL文件。

重要:仅限服务器端不足以支持此功能

专用服务器应运行CraftingStorageLink,但 每个玩家客户端也需要BepInEx和相同的CraftingStorageLink.dll.

Valheim 在玩家的游戏进程中执行制作配方和锤子建造件的需求检查。一个完全未安装模组的客户端会在服务器端插件让附近箱子内的物品计入之前,就判定玩家缺少材料。仅在服务器端伪造这一点并不可靠,还会带来物品栏不同步的风险。

你现有的服务端成就/体验优化模组可以完全保持原样。CraftingStorageLink 不会修改成就,也不依赖那个模组。

1.5.1 强化宝箱可靠性修复

版本1.5.1特别强化了 加固宝箱 / 铁宝箱(宝箱) 在处理有关小木箱可用而加固箱间歇性不可用的报告后。容器发现机制仍保持通用,而非硬编码为某一种箱子类型,但玩家建造检查现在会回退到容器ZDO上存储的创建者,ZNetView查找具有层级回退,并且关联计数在尝试私有之前会使用实时库存 加载.

伴随 跳过使用中的容器=true,一个由 这名本地玩家 仍然符合条件,因为CraftingStorageLink操作的是箱子界面中显示的同一个实时物品栏对象。远程使用的容器仍会被排除。资源抽取也会在移除后显式保存容器,作为兼容性兜底措施。

为了进行专项测试,请仅将石头或木头放入配置半径内的加固箱子中,清空玩家背包,然后在箱子关闭和本地打开的状态下分别测试制作和锤子放置。两种情况都应计入存储的材料。

1.5.0兼容性 / Hammer界面改动

版本1.5.0保持相同的常规CraftingStorageLink游戏规则,但改变了内部跟踪临时制作/建造上下文的方式。上下文现在支持嵌套/可重入且异常安全,因此诸如Infinity Hammer和ValheimBuildCamera之类的模组可以调用Valheim建造方法,而无需清除CraftingStorageLink的外部操作。

锤子HUD现已修补于 设置棋子信息 同样。这样就让建造资源显示与实际的建造需求检查共用同一套已连接存储的上下文,因此一项需求不应该仅仅因为材料放在符合条件的附近箱子里就闪红。

1.4.0工作台/营火修复仍然有效:无工作站锤子部件会围绕玩家/建造位置连接。

单人行为: 无需额外模组,预期的资源规则保持不变。同一个 DLL 在 BepInEx 下可独立运行。可见的差异应该只是更可靠的链接存储检测,以及修正后的锤子资源颜色/数量。

1.5.1版本的功能

  • 制作和升级可以从附近符合条件的存储中计数或提取材料。
  • 锤子/建造工具的放置可以从附近符合条件的存储中计入/提取材料。
  • 玩家背包优先扣除;关联仓库仅补充不足部分。
  • 储物会链接到所需制作站周围(默认20米);无需制作站的锤子部件则链接到玩家/建造位置周围。
  • 原版工作台/锻造台等的要求仍然生效。
  • 世界掉落物、墓碑、货车和船只默认排除在外。
  • 默认遵守容器访问/监护规则。
  • 与 SkipInUseContainers=true,其他玩家正在使用的容器会被排除;本地玩家当前打开的容器仍符合条件。
  • 专用服务器使用 Valheim 内置的 零远程过程调用; 未使用约顿配置同步。
  • 如果DLL版本不同,客户端会记录一条警告。此版本不会强制拒绝未加模组的客户端。

1.5.0 锤子与容器可见性修复

用户反馈暴露了两种不同的行为:

  1. 无站点锤子部件:工作台、营火以及其他不需要现有制作站的部件此前没有链接原点,因此链接的存储会被忽略。它们现在会在玩家/建造位置周围的配置半径内进行搜索。需要工作台/熔炉等的部件仍会围绕该所需制作站进行链接。
  2. 宝箱会定期从关联池中消失: 与 跳过使用中的容器=true,一个箱子被故意排除在外,而Valheim却将其报告为打开/使用中。这样可以保持需求检查和实际资源移除的一致性,并防止免费制作或库存竞争。如果你运行的是事务安全的共享容器模组,你可以设置 SkipInUseContainers=false 在服务器上,以便已打开的宝箱仍符合条件。

第一个改动修复了 Hammer 中涉及以下资源的情况: 骨片 看起来被忽略了,因为不存在制作站上下文。调试日志现在也会报告正在使用中的箱子何时被排除。

安装布局

在专用服务器上:

英灵神殿专用服务器/BepInEx/core/0Harmony.dll <- 已由BepInEx提供 plugins/CraftingStorageLink/CraftingStorageLink.dll

在每个客户端上:

Valheim/ BepInEx/ core/ 0Harmony.dll <- 已由 BepInEx 提供 plugins/ CraftingStorageLink/ CraftingStorageLink.dll

使用完全相同的 合成存储链接.dll 在服务器和客户端上。

服务器配置

首次启动后的配置为:

BepInEx/config/com.custom.valheim.craftingstoragelink.cfg

推荐默认设置:

[01 - 通用] Enabled = true HammerBuildingEnabled = true [02 - 链接] Radius = 20 PlayerBuiltContainersOnly = true AllowShipContainers = false AllowCartContainers = false [03 - 安全] RespectContainerAccess = true RespectWards = true SkipInUseContainers = true ClaimOwnershipWhenPulling = true RespectMultiUserChestIgnore = true [99 - 调试] DebugLogging = false

当模组客户端连接时,服务器会将上述游戏设置发送给客户端以供当前会话使用。 调试日志 仍然本地。

编译期游戏引用

构建现在引用了 assembly_utils.dll 出自同一 瓦尔海姆_数据/托管 作为目录 assembly_valheim.dll这是 Valheim 1.0 的要求,因为 包 暴露 二维向量/二维向量 该程序集中的类型。不会安装任何额外内容;该DLL已是Valheim的一部分。

建筑

此源项目有意引用你实际 Valheim 安装中的 DLL,而不是重新分发游戏/BepInEx 程序集。

Windows 客户端安装/构建:

.\SOURCE\build.ps1 -ValheimDir "C:\Program Files (x86)\Steam\steamapps\common\Valheim" -Install

Windows专用服务器示例:

.\SOURCE\build.ps1 -ValheimDir "C:\Servers\Valheim" -Install

Linux 专用服务器:

./SOURCE/build.sh "/path/to/Valheim dedicated server" --install

需要当前版本的 .NET SDK 才能编译该项目。

上传的英灵神殿程序集验证

本项目使用的 Hammer/crafting 挂钩已根据本次对话中提供的 Valheim 1.0 程序集进行了验证:

assembly_valheim.dll SHA-256: a5130f5a957ab51cb6538f5412cbe57b43f927f4a679918bff199b5c905d01bc

本包不包含游戏本体。

首次多人测试

先备份世界。然后用两名玩家和廉价材料进行测试:

  1. 将木头/石头放入工作台20米范围内玩家建造的普通箱子中。
  2. 从玩家A的库存中清空那些资源。
  3. 验证玩家A能否使用宝箱资源制作工作台配方。
  4. 确认宝箱堆叠数量减少的量完全正确。
  5. 装备锤子,仅使用箱子里的材料放置一个需要工作台的部件。
  6. 确认宝箱数量减少一次,且玩家库存中不会获得重复物品。
  7. 当玩家B打开宝箱时重复;同时 SkipInUseContainers=true, 那个宝箱不应该被使用。

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!