可制作一个 召唤号角 到工作台。装备它并左键点击即可发出爆炸声。它的音量可以在游戏设置菜单的音频选项卡中通过滑块调节。
状态:进行中。 号角外观和声音都对,花费 1 青铜 + 1 鹿皮 在1级工作台上,其他玩家可在64米范围内听到。剩下的是行为:见 还没有完成.
纯净的BepInEx + Harmony,无额外运行时依赖——安装 召唤之角.dll 进入
BepInEx/plugins/ 仅此而已。
该模组添加了一个物品和一个配方,因此需要开启 每个客户端和专用服务器上.
dotnet build HornOfCalling/HornOfCalling.csproj -c Release
默认为 Linux Steam 安装路径(~/.local/share/Steam/steamapps/common/Valheim),回退到默认的 Windows 路径。可通过创建以下内容来覆盖
目录.生成.用户.属性 在……旁边 Directory.Build.props (已忽略):
<项目> <属性组> <英灵神殿路径>D:\Games\Valheim</英灵神殿路径> </属性组> </项目>
成功生成后会将 DLL 直接复制到 BepInEx/插件/。没有热重载——每次构建后请重启游戏。
如果出现以下情况,构建会提前失败并给出具名错误消息: assembly_valheim.dll 或 BepInEx.dll
找不到,而不是发出一堵 CS0246.
三个注册步骤,均为幂等操作,由Harmony后缀驱动,在
src/Patches.cs:
| 步 | 哪里 | 为什么在那里 |
|---|---|---|
克隆预制体,添加到 物品数据库.m_items |
对象数据库.唤醒, 对象数据库.复制其他数据库 |
对象数据库被构建了两次——先是用于主菜单的精简副本,然后是实际游戏世界的完整版本 |
添加 配方 |
三个补丁中的任意一个 | 需要工作台,这是一个 碎片 可能一开始并不存在 对象数据库.唤醒 |
添加到 ZNetScene.m_prefabs / 已命名预制体 |
ZNetScene.Awake |
让物品及其音效作为联网对象存在 |
该物品是从原版复制而来的 庆祝号角 (预制体 酒馆周年庆),无需资源包即可提供号角模型、图标和握持姿势。
克隆体需要解除三件事。它的 弹药类型 是 蜂蜜酒 ——原版中,你吹响号角时它会从你的物品栏里喝掉一瓶蜜酒,没有蜜酒就完全吹不响——所以这点已经排除了。它继承的武器属性(击退、背刺、格挡、招架)都归零了,所以提示框里只剩风味文本。而它的初始效果,蜜酒飞溅和打嗝,被爆炸替代了。
爆炸音效并非由补丁播放。该音频片段——一个嵌入程序集中的16位PCM WAV文件,解码于 src/HornSound.cs — 挂载在物品的
开始效果,游戏在每次攻击时会在耐力检查后触发一次。这样也会将其通过音效混音组处理,因此玩家的音量滑块会生效。
片段已峰值归一化至−0.3 dBFS,这就是号角在100%音量下的全部响度:Unity会将其钳制 音量 在 1 处,因此一旦模组要求满音量,唯一剩下的余量就在录音内部。
中的音量行 src/VolumeSlider.cs 原版音效行是否已克隆:该 滑块 位于行 GameObject 上,其标题和百分比作为子级,因此一个 实例化 复制整份内容,然后重命名,拼接进标签页的导航链,并指向配置项。
设置 → 音频 → 召唤号角,位于三个原版音量滑块下方。拖动时它会实时移动,并在 好的 并被丢弃于 返回,与上面的滑块相同。
数值存储在 BepInEx/配置/com.greg.hornofcalling.cfg:
[音频] ## 号角声的音量,作为录制电平的比例。 [...] # 设置类型:Single # 默认值:1 # 可接受值范围:从0到1 BlastVolume = 1
编辑该文件,或者如果你有的话,在F1 ConfigurationManager叠加层中编辑,都会立即生效,无需重启——设置行只是该条目的前端界面,而非独立设置。
它是在英灵神殿自身音效音量的基础上进行倍增,而非替换,并且它 每位玩家每次爆炸都会改变 你 听,无论谁发出的声音,每个人听到的都不一样,永远无法共享他人的听觉。正因如此,它不会通过MushroomSync进行同步——详见 文档/上下文.md.
当你停止移动滑块时,号角声会作为预览播放一次——松开滑块手柄时,或在最后一次按方向键或推摇杆后的三分之一秒时——以你刚刚选择的音量,通过与实际鸣响相同的混音器组播放。再次移动滑块会重新开始预览,而不是在其上叠加第二个副本,关闭菜单则会停止预览。
从……打开 主菜单 滑条仍能工作,但没有声音:爆炸预制体是由世界的 对象数据库,所以在加载世界之前没有什么可以预览的。
根据设计说明,仍待解决:
攻击消耗的耐力,当前 0.表情_饮酒.路由远程调用
广播。其他玩家听到了号角声。效果预制体携带了一个 网络视图,因此生成它会创建一个ZDO,并复制到附近的同伴,其 网络场景 通过哈希解析并在本地播放——这就是为什么效果预制体被注册到 网络场景
与物品并排。
两个独立限制同时生效,取较小者为准:
| 限制 | 数值 | 由以下设置 |
|---|---|---|
| 听觉衰减 | 64米 | 自定义衰减曲线在 src/HornSound.cs |
| ZDO复制 | 64米保证,128米在默认设置下 | 听者的 模拟距离 |
衰减是一条平台曲线,调校在 衰减 表格:
| 距离 | 音量 |
|---|---|
| 0 – 15 米 | 100% |
| 15 – 25 米 | 82% |
| 25 – 35 米 | 64% |
| 35 – 45 米 | 46% |
| 45 – 64 米 | 28% |
复制是听者自身的 模拟距离 图形设置,受服务器限制,并非固定半径。其最低级别(0) 是 1.0.7 之前的一环正方形,可达到 64 米;默认等级 2 达到 128 米,而它上方的层级则更高。衰减曲线是按 64 米调的,因为那是底线——每个听众都保证能听到的唯一范围。
所以,将可听范围提高到超过收听者的复制半径是毫无作用的:他们永远接收不到该对象,任何音量设置也无法传达到他们。提高它 之内 那个半径应该可行,而且从1.0.7起就有空间——参见
文档/上下文.md 对于该机制以及为什么该常量被保留在底限。
在插件加载前,必须将BepInEx安装到游戏文件夹中。在 原生 Linux 建造:
chmod u+x start_game_bepinex.sh../start_game_bepinex.sh %command%BepInEx 已启动,如果 BepInEx/LogOutput.log 启动后出现。如果始终未出现,请运行
start_game_bepinex.sh 从终端启动——Steam容器运行时隐藏了错误。
新世界 → F5 → 开发命令 → 生成唤号角 1 1 p然后在工作台前确认配方显示为1个青铜加1张鹿皮。装备号角并左键点击——爆炸时间约为4.9秒。
生成青铜1 和 生成鹿皮 1 把材料放在手边,方便快速查看。
音量滑块: Esc → 设置 → 音频,检查该行显示“呼唤之角”并显示百分比,拖动它,按确定,然后确认 爆破范围 配置文件中的内容已更改。松开手柄时应按新音量鸣笛一次,再次拖动时应切断之前的试听,而不是叠加播放。用方向键或游戏手柄浏览列表时,应在停止拨动三分之一秒后停在当前行并进行试听——如果整行都被跳过,那要检查的就是导航拼接。拖动后按返回键应保持配置不变,下一次鸣笛仍按旧音量。
预制体名称区分大小写,并且是 不 显示名称: 生成“召唤之角”
将无法使用。
日志会按发生顺序记录每个注册步骤,因此部分失败也能看得见:
grep -i hornofcalling "$VALHEIM/BepInEx/LogOutput.log"
Unity 端堆栈跟踪会出现在 ~/.config/unity3d/IronGate/Valheim/Player.log.
查看 文档/上下文.md 对于上述设计背后的API陷阱。

修改前置工具
2026-09-12 14:33:53
修改前置工具

史诗战利品
randyknapp2026-09-09 21:20:10
为英灵神殿添加战利品掉落、魔法物品和附魔。

制作 建造 熔炼 烹饪 燃料 从容器中取出
aedenthorn2025-06-30 08:34:14
让你在制作、建造、使用熔炉和窑炉、添加燃料、烹饪食物等时,可以使用附近容器中的资源。

种植一切
Advize2025-09-09 11:15:37
重写了bkeyes93的种植增强模组。允许你的种植者种植浆果丛、蓟、蒲公英、蘑菇、此前无法获取的树种以及其他装饰性植物。还包括许多其他杂项功能(详见

无限制传送门
frostedplaything4102023-09-02 17:39:40
无限制传送门是一个客户端模组,允许玩家通过传送门传送任何物品。该模组提供广泛的自定义选项,让玩家能够控制物品限制、移除限制,

农场格子
Sarcenzzz2023-06-14 11:38:34
允许所有通过种植器种下的植物自动对齐并放置在网格中,确保它们有足够的生长空间。

更好的UI
MKMasa2021-04-15 09:19:42
这个模组对游戏界面做了一些细微的调整。你可以编辑并选择想要启用的更新内容。

更好的射箭
Ishid42026-09-10 16:16:51
为弓术玩法添加了许多功能和改动,包括全新的箭袋系统、可回收的箭矢、更精准的瞄准以及逼真的箭矢物理效果。