键盘快捷键
More languages
More actions
此页面可查看和编辑 ShroudForge 窗口快捷键,以及模组在自己的 extended.mod.json 中明确声明为 control: "keybind" 的快捷键。
分配快捷键
单击输入框,然后按下所需的按键或组合键。输入使用物理 SDL3 扫描码,例如 F7 对应的 SDL:64、Ctrl+SDL:29 或 Shift+SDL:100。这样可确保不同键盘布局下物理按键的位置一致。SDL 会根据当前操作系统布局提供易读的标签。Ctrl、Alt、Shift 和 Meta 等修饰键必须完全匹配。
录制时,ShroudForge 会在所有进程中屏蔽其窗口快捷键和已声明的模组快捷键。取消录制或窗口焦点变化后,只要仍有按键或鼠标按钮处于按下状态,保护就会继续生效。随后会开始固定的三秒延迟,新输入不会重置该延迟。无论是否带修饰键,都不能录制 Escape。游戏使用它打开暂停菜单和关闭窗口,因此按下 Escape 会取消录制并保留原来的快捷键。绑定新的 F1 或 F12 需要确认,因为 Enshrouded 或 Steam 可能会使用它们。保存与其他启用的 ShroudForge 快捷键冲突的绑定会被阻止。
选择 Clear 可禁用快捷键。对于 ShroudForge 窗口,你可以恢复内置默认值。模组快捷键仍属于各自模组的设置。模组设置中的字段和 Compatibility → Hotkeys 下的字段会编辑同一个已保存值。
ShroudForge 模组中的快捷键
模组作者会在 extended.mod.json 中将快捷键声明为一项设置:
{
"settings": {
"pasteKey": {
"value": "SDL:64",
"label": "Paste blueprint",
"control": "keybind",
"applyAt": "live"
}
}
}
模组通过 ShroudForge Lua API 读取此设置。它会响应当前值,而不是在脚本中写死某个按键:
return {
on_update = function()
if shroudforge.input.was_keybind_pressed("pasteKey") then
-- Run the action.
end
end,
}
shroudforge.input.was_keybind_pressed("pasteKey") 会在运行时更新之间保留短按,并且每个模组和设置只返回一次 true。已保存的实时更改会在一秒内传到运行时。对于按住时需要重复执行的操作,请使用 is_keybind_down。旧的 is_key_down("F1") 到 is_key_down("F8") API 从 ShroudForge 1.7.6 起不再受支持。调用它会记录迁移消息并引发 Lua 错误。请改为声明 keybind 设置,并在 Hotkey Manager 的 Compatibility → Hotkeys 中为其分配按键。shroudforge.input.keybind_label("pasteKey") 会根据当前操作系统布局返回易读的 SDL 标签。游戏窗口处于焦点时可以查询按键。仅声明设置不会更改脚本中写死的按键。模组必须通过 API 读取此值并将它用于相应操作。
冲突和其他模组
ShroudForge 会报告启用的 ShroudForge 窗口快捷键与已声明模组按键绑定之间的冲突。如果按键和修饰键组合重叠,保存时会阻止新增的快捷键冲突。
独立的 EML 模组和自行管理快捷键的 DLL 模组无法在此处可靠地重新映射或拦截。如果模组提供相关选项,请在各自的设置或配置中指定快捷键。如果 EML 模组在 extended.mod.json 中明确声明了匹配的 keybind 设置,并通过 ShroudForge Lua API 使用它,也可以显示在此处。这不会接管由 EML 或 DLL 独立管理的快捷键。